|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- //出栈
- int pop(char * a,int top){
- if (top==-1) {
- return -1;
- }
- top--;
- return top;
- }
- //入栈
- int push(char* a,int top,char data)
- {
- a[++top]=data;
- return top;
- }
- int main()
- {
- char s[1000]={'\0'};
- int top=-1;
- char *a="(((())))[]([()()[]])";
- int flag=0;
- while(*a!='\0')
- {
- if(*a=='(' || *a=='[')
- {
- top=push(s, top, *a);
- }
- if(*a==')')
- {
- if('('==s[top])
- {
- top=pop(s,top);
- }
- else
- {
- flag=1;
- break;
- }
- }
- if(*a==']')
- {
- if('['==s[top])
- {
- top=pop(s,top);
- }
- else
- {
- flag=1;
- break;
- }
- }
- ++a;
- }
- if (flag || top>=0)
- {
- printf("表达式非法\n");
- }
- else
- {
- printf("恭喜,通过测试\n");
- }
- return 0;
- }
复制代码 |
|