




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include#include#include#define MAXSIZE 20 /*表达式串最大长度 */#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0typedef float Elemtype;typedef struct Elemtype dataMAXSIZE; int top;SqStack; /*定义顺序栈类型*/int InitStack(SqStack &s) /*初始化栈 */ s.top=-1; /*栈顶指针置为-1 */ return OK;int StackEmpty(SqStack s) return (s.top=-1?TRUE:FALSE);int StackFull(SqStack s) return (s.top=MAXSIZE-1?TRUE:FALSE);int Push(SqStack &s, Elemtype e) /*元素进栈*/ if (StackFull(s) return ERROR; s.top+; s.datas.top=e; return OK;int Pop(SqStack &s, Elemtype &e) /*元素出栈,并保存栈顶元素*/ if (StackEmpty(s) return ERROR; e=s.datas.top; s.top-; return OK;Elemtype GetTop(SqStack s) /*取栈顶元素*/ Elemtype e; e=s.datas.top; return e;Elemtype Operate (Elemtype a,char theta,Elemtype b) /*进行相应运算并得到结果*/ Elemtype z; switch (theta) case +:z=a+b;break; case -:z=a-b;break; case *:z=a*b;break; case /:z=a/b;break; return(z);char Precede (char a,char b) /*比较两个运算符的优先级*/ char z; if(b=+)|(b=-)|(b=*)|(b=/)|(b=()|(b=)|(b=)switch (a)case +: case -: if(b=*)|(b=/)|(b=() z=; break; case *: case /: if(b=() z=;break; case (: if(b=) z=e; else if(b=)z=; else z=; break; case =: if(b=)z=; else if(b=) z=e; else z=;break; else z=e; return(z);int In(char ch) /*判断字符是否为运算符*/ int i,flag=0; char opn7=+,-,*,/,(,),=; /*算符数组*/ for (i=0;i=0&*p=0&*p0) k+;p+; if (k0) u=u/(Elemtype)pow(10,k-1); /10的k-1次方 Push (OPND,(Elemtype)u); /*将数字字符转换成相应数值进OPND栈*/else switch(Precede (char)GetTop(OPTR),*p) case :Pop(OPTR,theta); /*将操作符thera出栈,此时它为float型*/ Pop(OPND,b); /*将右操作数出栈*/Pop(OPND,a); /*将左操作数出栈*/Push(OPND,Operate(a,(char)theta,b) ;break;case e: printf(表达式有误!);exit(1); x=GetTop(OPND); return x;int main() char exprMAXSIZE; InputFormul
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生药学试题及答案填空题
- 数字安全环境下国家安全威胁的多维度评估方法-洞察及研究
- 高频接地施工合同范本(3篇)
- 高空作业施工拆卸合同(3篇)
- 宠物领养与送养双方权益保障协议书
- 时尚街区品牌店面转租合作协议范本
- 自动驾驶汽车与移动应用的深度协同-洞察及研究
- 城市轨道交通材料运输及进度控制合同
- 高效个人购房贷款及专业担保服务合同
- 国际工程项目承包与咨询服务合同
- 兴城市2021年(中小学、幼儿园)教师招聘试题及答案
- 托班育儿知识讲座
- 危化品运输安全培训的事故案例与分析
- 流体力学在化工中的应用
- JJG 443-2023燃油加油机(试行)
- 安全生产责任保险事故预防技术服务方案
- 电路检查记录表
- 设计交底记录表
- 2023年安徽省公安机关警务辅助人员条例训练题库211题及答案
- 华为质量管理评估模型(31个评估要素和评估报告)
- 模具凸凹模工艺文件工序卡
评论
0/150
提交评论