实验二 栈与迷宫

实验二 栈与迷宫

ID:14177638

大小:62.00 KB

页数:9页

时间:2018-07-26

实验二  栈与迷宫_第1页
实验二  栈与迷宫_第2页
实验二  栈与迷宫_第3页
实验二  栈与迷宫_第4页
实验二  栈与迷宫_第5页
资源描述:

《实验二 栈与迷宫》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验二栈(队列)的创建与应用#include#include#defineMaxSize100#defineMaxOp7struct{charch;//运算符intpri;//优先级}lpri[]={{'=',0},{'(',1},{'',2},{'/',2},{'+',3},{'-',3},{')',6}},rpri[]={{'=',0},{'(',6},{'',4},{'/',4},{'+',2},{'-',2},{')',1}};intleftpri(charop)//求左运算符op的优先级{inti;for(i=0;i

2、pri[i].ch==op)returnlpri[i].pri;}intrightpri(charop)//求右运算符op的优先级{inti;for(i=0;i

3、)return0;elseif(leftpri(op1)

4、字符的情况{while(exp>='0'&&exp<='9')//判定为数字{postexp[i++]=exp;exp++;}postexp[i++]='#';//用#标识一个数值串结束}else//为运算符的情况switch(Precede(op.data[op.top],exp)){case-1://栈顶运算符的优先级低op.top++;op.data[op.top]=exp;exp++;//继续扫描其他字符break;case0://只有括号满足这种情况op.top--;//将(退栈exp++;//继续扫描其他字符break;case1://退栈并输出到postexp中postexp[i

5、++]=op.data[op.top];op.top--;break;}}while(op.data[op.top]!='=')//此时exp扫描完毕,退栈到'='为止{postexp[i++]=op.data[op.top];op.top--;}postexp[i]='';//给postexp表达式添加结束标识}floatcompvalue(charpostexp)//计算后缀表达式的值{struct{floatdata[MaxSize];//存放数值inttop;//栈指针}st;//定义数值栈floatd,a,b,c;st.top=-1;while(postexp!='')//p

6、ostexp字符串未扫描完时循环{switch(postexp){case'+'://判定为'+'号a=st.data[st.top];st.top--;//退栈取数值ab=st.data[st.top];st.top--;//退栈取数值bc=a+b;//计算cst.top++;st.data[st.top]=c;//将计算结果进栈break;case'-'://判定为'-'号a=st.data[st.top];st.top--;//退栈取数值ab=st.data[st.top];st.top--;//退栈取数值bc=b-a;//计算cst.top++;st.data[st.top]=c;//

7、将计算结果进栈break;case''://判定为''号a=st.data[st.top];st.top--;//退栈取数值ab=st.data[st.top];st.top--;//退栈取数值bc=ab;//计算cst.top++;st.data[st.top]=c;//将计算结果进栈break;case'/'://判定为'/'号a=st.data[st.top];st.top--;//退栈取数

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

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

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