删除多余括号(源代码)

删除多余括号(源代码)

ID:37737920

大小:33.00 KB

页数:5页

时间:2019-05-30

删除多余括号(源代码)_第1页
删除多余括号(源代码)_第2页
删除多余括号(源代码)_第3页
删除多余括号(源代码)_第4页
删除多余括号(源代码)_第5页
资源描述:

《删除多余括号(源代码)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、//删除多余括号#include#include#definemaxsize100typedefstruct{chardata[maxsize];//记录栈中数据inttop;//记录栈顶位置}Stack;Stack*InitStack()//初始栈函数{Stack*S;S=(Stack*)malloc(sizeof(Stack));S->top=-1;returnS;}intEmptyStack(Stack*S)//判栈空函数{if(S->top<=-1)return1;elsereturn0;}intFullStack(Stack*S)//判

2、栈满函数{if(S->top>=maxsize)return1;elsereturn0;}Stack*Pop(Stack*S)//元素出栈函数{if(!EmptyStack(S)){S->top--;}returnS;}Stack*Push(Stack*S,charData)//元素入栈函数{if(!FullStack(S)){S->top++;S->data[S->top]=Data;}returnS;}voidPrintStack(Stack*S)//遍历栈函数{if(EmptyStack(S)){printf("此栈为空,无法输出!");}else{while(S->top>-

3、1){S=Pop(S);printf("%c",S->data[S->top+1]);}}}voidmain(){Stack*S1,*S2;chars[100],c;inti=-1,j,k,m,n;S1=InitStack();S2=InitStack();printf("请输入一个四则运算表达式:");scanf("%c",&c);while(c!='#')//输入一个四则运算表达式{i++;s[i]=c;scanf("%c",&c);}for(j=0;j<=i;j++){if(s[j]=='(')//考虑左括号{if(s[j+2]==')')//若括号里只有一个字符,删除括号

4、{j++;S1=Push(S1,s[j]);j++;}elseif(s[j+3]==')'){if(s[j+1]=='-')//若与左括号相邻的是负号{for(k=0;k<4;k++){S1=Push(S1,s[j]);j++;}}else{for(k=0;k<2;k++){j++;S1=Push(S1,s[j]);}j++;}}elseif(j-1==-1)//若第一个字符是左括号{S1=Push(S1,s[j]);}elseif(j-1>=0)//若第一个字符不是左括号{if(s[j-1]=='/'){S1=Push(S1,s[j]);}elseif((s[j-1]=='*'

5、

6、

7、s[j-1]=='-')&&(s[j+2]=='+'

8、

9、s[j+2]=='-')

10、

11、s[j+1]=='-'){for(;s[j]!=')';j++){S1=Push(S1,s[j]);}S1=Push(S1,s[j]);}else{for(;s[j]!=')';j++){S1=Push(S1,s[j]);}j--;}}}elseif(s[j]==')')//考虑右括号{if(j==i){S1=Push(S1,s[j]);}elseif((s[j-2]=='+'

12、

13、s[j-2]=='-')&&(s[j+1]=='*'

14、

15、s[j+1]=='/')){S1=Push(S1,s[j]);}e

16、lse{m=S1->top;for(k=0;S1->data[m]!='(';k++){S2=Push(S2,S1->data[m]);m--;}for(n=0;ndata[S2->top]);S2->top--;}}}else//考虑除左右括号以外的字符{S1=Push(S1,s[j]);}}while(!EmptyStack(S1)){S2=Push(S2,S1->data[S1->top]);S1=Pop(S1);}printf("整理括号后,四则运算表达式为:");

17、PrintStack(S2);//遍历栈printf("");}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。