下载此文档

数据结构实验报告(逆波兰表达式求值).doc


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
实验三逆波兰表达式求值一. 问题描述:读入一个后缀表达式,利用堆栈来计算该表达式的值,同时要效验后缀表达式是否正确。二. 需求分析:。,界面自动输出后缀表达式的值,否则输出表达式错误的信息,将结果置为0。。*1-#,所以首先选择一个字符数组存储该串字符,直接使用编译器自带的字符数组。由于计算后缀表达式时,具有先进后出的规律,故而考虑使用堆栈其ADTStack{操作对象:字符,整数,浮点数基本操作:Stack(intsize);//构造大小为size的堆栈~Stack();//撤销堆栈BoolIsEmpty();//是否为空,是返回true,否则返回falseBoolIsFull();//是否为满,是返回true,否则返回falseVoidPush(TX);//将x压入堆栈VoidPop(T&x);//弹出栈顶元素,并用x保存对于计算后缀表达式的值的算法:首先假设此表达式正确从字符串第一个开始扫描,遇到运算数就先转化成为数值然后压入堆栈中,如遇到运算符则弹出堆栈上面的两个元素,并进行对应的运算,将得到的值压入栈中,直到最后一个字符为止。对于表达式错误:返回0小数缺少整数部分:,而是直接检测到小数点运算符过多:23*-弹出一个数后堆栈便空运算数过多:37*:/*Name:逆波兰表达式求值Copyright:WCH466-Experiment-3Author:wch466Date:02/04/1222:59Description:读入一个后缀表达式,利用堆栈来计算该表达式的值,同时要效验后缀表达式是否正确。*///Copyright:WCH466-Experiment-3#include<iostream>#include<string>#include<cmath>usingnamespacestd;classAstack{private:intsize;inttop;float*list;boolg;public:Astack(intse=4){size=se;top=0;list=newfloat[size];g=1;}~Astack(){delete[]list;}voidpush(constfloat&it)//入{if(top==size)return;list[top++]=it;}floatpop(){if(top==0){g=0;return0;}//g=0代表表达式错误(运算符多了)returnlist[--top];}booljudge(){returng;}intlength()const{/*cout<<"lengthoflistis"<<top<<endl;*/returntop;}};//Copyright:WCH466-Experiment-3voidPretreatstr(constchar*a)//预处理字符{inti=0,g=1,s=1,size=strlen(a),k=0;floatnum=0,in=0,x,y,de=0;//standforinteger,decimalAstackt(size);fo

数据结构实验报告(逆波兰表达式求值) 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xiaodengyou
  • 文件大小34 KB
  • 时间2019-01-10