作业帮 > 综合 > 作业

用堆栈解决对于一个给定的数学表达式,判断是否括号是否是匹配的

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/17 22:08:00
用堆栈解决对于一个给定的数学表达式,判断是否括号是否是匹配的
用源代码的,最好能有注释
用堆栈解决对于一个给定的数学表达式,判断是否括号是否是匹配的
遇到左括号入栈,右括号出栈,最后判断一下栈是否为空就行了啊
再问: 能把程序写出来吗?最好有注释。是作业,没代码过不了。思路我懂
再答: #include #include typedef struct _stack { char ch; struct _stack *next; }stack; stack *top; void push( char ch); void pop(); int isempty();//判断栈是否空 int main() { char str[100]; top=(stack *)malloc(sizeof(stack)); top->ch='#'; top->next=NULL; char *p=str; scanf("%s",str); while(*p!='\0') { if(*p=='(') push(*p); if(*p==')') pop(); p++; } if(isempty()) printf("OK\n"); else printf("NOT OK\n"); return 0; } void push(char ch) { stack *tmp=(stack *)malloc(sizeof(stack)); tmp->ch=ch; tmp->next=top; top=tmp; } void pop() { if(top->ch!='#') top=top->next; else { printf("NOT OK"); exit(0); } } int isempty() { if(top->ch=='#') return 1; else return 0; }
再问: 能加你QQ吗??我想继续问你一些细节的问题