




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验二 栈(队列)的创建与应用#include #include #define MaxSize 100#define MaxOp 7struct char ch; /运算符int pri; /优先级 lpri=,0,(,1,*,2,/,2,+,3,-,3,),6, rpri=,0,(,6,*,4,/,4,+,2,-,2,),1;int leftpri(char op) /求左运算符op的优先级int i;for (i=0;iMaxOp;i+)if (lprii.ch=op) return lprii.pri;int rightpri(char op) /求右运算符op的优先级int i;for (i=0;iMaxOp;i+)if (rprii.ch=op) return rprii.pri;int InOp(char ch) /判断ch是否为运算符if (ch=( | ch=) | ch=+ | ch=- | ch=* | ch=/)return 1;elsereturn 0;int Precede(char op1,char op2) /op1和op2运算符优先级的比较结果if (leftpri(op1)=rightpri(op2)return 0;else if (leftpri(op1)=0 & *exp=0 & *postexp=9) /判定为数字字符d=10*d+*postexp-0; postexp+;st.top+;st.datast.top=d;break;postexp+;/继续处理其他字符return(st.datast.top);void main() char exp=(26-20)/(4+2);char postexpMaxSize;trans(exp,postexp);printf(中缀表达式:%sn,exp);printf(后缀表达式:%sn,postexp);printf(表达式的值:%gn,compvalue(postexp);printf(操作成功n);#include #include typedef char ElemType;typedef struct linknodeElemType data;/数据域struct linknode *next;/指针域 LiStack;/链栈类型定义void InitStack(LiStack *&s)s=(LiStack *)malloc(sizeof(LiStack);s-next=NULL;void ClearStack(LiStack *&s)LiStack *p=s-next;while (p!=NULL)free(s);s=p;p=p-next;free(s);/s指向尾结点,释放其空间int StackLength(LiStack *s)int i=0;LiStack *p;p=s-next;while (p!=NULL)i+;p=p-next;return(i);int StackEmpty(LiStack *s)return(s-next=NULL);void Push(LiStack *&s,ElemType e)LiStack *p;p=(LiStack *)malloc(sizeof(LiStack);p-data=e;p-next=s-next;/插入*p结点作为第一个数据结点s-next=p;int Pop(LiStack *&s,ElemType &e)LiStack *p;if (s-next=NULL)/栈空的情况return 0;p=s-next;/p指向第一个数据结点e=p-data;s-next=p-next;free(p);return 1;int GetTop(LiStack *s,ElemType &e)if (s-next=NULL)/栈空的情况return 0;e=s-next-data;return 1;void DispStack(LiStack *s)LiStack *p=s-next;while (p!=NULL)printf(%c ,p-data);p=p-next;printf(n);#include #define MaxSize 100#define M 8#define N 8int mgM+2N+2=1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,1,0,1,1,0,0,1,0,0,0,1,0,1,1,0,0,0,0,1,1,0,0,1,1,0,1,1,1,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,1,0,1,0,0,0,1,0,0,1,1,0,1,1,1,0,1,1,0,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1;int mgpath(int xi,int yi,int xe,int ye)/求解路径为:(xi,yi)-(xe,ye)struct int i;/当前方块的行号int j;/当前方块的列号int di;/di是下一可走方位的方位号 stMaxSize;/定义栈int top=-1;/初始化栈指针int i,j,k,di,find;top+; /初始方块进栈sttop.i=xi;sttop.j=yi;sttop.di=-1;mg11=-1; while (top-1)/栈不空时循环i=sttop.i;j=sttop.j;di=sttop.di; /取栈顶方块if (i=xe & j=ye)/找到了出口,输出路径 printf(迷宫路径如下:n);for (k=0;k=top;k+)printf(t(%d,%d),stk.i,stk.j);if (k+1)%5=0)/每输出每5个方块后换一行printf(n); printf(n);return(1);/找到一条路径后返回1find=0;while (di4 & find=0)/找下一个可走方块di+;switch(di)case 0:i=sttop.i-1;j=sttop.j;break;case 1:i=sttop.i;j=sttop.j+1;break;case 2:i=sttop.i+1;j=sttop.j;break;case 3:i=sttop.i,j=sttop.j-1;break;if (mgij=0) find=1;/找到下一个可走相邻方块if (find=1)/找到了下一个可走方块sttop.di=di;/修改原栈顶元素的di值top+;/下一个可走方块进栈sttop.i=i;sttop.j
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广西城轨工程建设有限公司招聘20人考前自测高频考点模拟试题及完整答案详解1套
- 2025年绍兴新昌县卫健系统第一次公开招聘人员17人模拟试卷附答案详解(突破训练)
- 2025广州医科大学校本部招聘工作人员9人(第二次)考前自测高频考点模拟试题及参考答案详解一套
- 2025年杭州市余杭区卫生健康系统事业单位招聘编外工作人员73人考前自测高频考点模拟试题及答案详解一套
- 2025安康石泉县两河镇中心卫生院招聘(2人)考前自测高频考点模拟试题附答案详解(完整版)
- 2025湖南永州市东安县招聘第一批就业见习岗位121人模拟试卷及答案详解(必刷)
- 2025贵州省计量测试院参加第十三届贵州人才博览会引才4人考前自测高频考点模拟试题及答案详解(易错题)
- 2025年宁波余姚市卫生健康事业单位公开招聘卫生技术人员179人模拟试卷参考答案详解
- 2025河南许昌市经发控股集团有限公司社会招聘拟聘人员模拟试卷及完整答案详解一套
- 2025安徽合肥师范学院高层次人才招聘63人考前自测高频考点模拟试题完整答案详解
- 仓管员补贴管理办法
- DB11-T 751-2025 住宅物业服务标准
- 个税扣除培训
- 与保密有关培训课件
- 粮食机收减损培训课件
- 农行考试试题及答案
- 2025-2030年中国抽油机行业市场现状供需分析及投资评估规划分析研究报告
- 展览会场安全风险评估及应对措施
- 十五五住房和城乡建设发展思路
- 医用废弃口罩管理制度
- 《数据库原理及应用(第二版)》课件 盛志伟 第1-5章 数据库概论-SQL语言
评论
0/150
提交评论