用堆栈解决对于一个给定的数学表达式,判断是否括号是否是匹配的
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间: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吗??我想继续问你一些细节的问题
再问: 能把程序写出来吗?最好有注释。是作业,没代码过不了。思路我懂
再答: #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吗??我想继续问你一些细节的问题
用堆栈解决对于一个给定的数学表达式,判断是否括号是否是匹配的
C语言 给定的表达式中左右括号数量是否匹配
pascal括号匹配描述 给定一个算术表达式,检查其中的圆括号是否配对,给出适当信息(正好:Yes,左括号多:Left,
给出一行C语言表达式,判断给定的整数是否是一个2的幂
输入一行表达式,判断该表达式中的括号是否匹配.括号要求符合C++表达式的要求.若左括号与右括号匹配,则
用vb编写函数过程IsPrim(n),对于一个给定的正整数n,判断是否是素数
表达式括号匹配问题一个表达式中包括变量、常量、操作符、圆括号,圆括号可以嵌套,编写程序判断表达式中的括号是否正确匹配.输
编写一个判断算术表达式中开括号闭括号是否配对的算法
试用VB程序语言写出主要程序段:判断一个给定的数X是否是素数
C语言用栈写一个判断输入的表达式的括号是否正确的算法?
试用C语言设计一个程序,程序的功能是接收任意输入一个算术表达式,判断表达式中的括号是否配对出现.
编写一个表达式中括号是否正确配对的算法