收藏 分享(赏)

数据结构中缀表达式转后缀表达式.doc

上传人:精品资料 文档编号:10298740 上传时间:2019-10-28 格式:DOC 页数:13 大小:172KB
下载 相关 举报
数据结构中缀表达式转后缀表达式.doc_第1页
第1页 / 共13页
数据结构中缀表达式转后缀表达式.doc_第2页
第2页 / 共13页
数据结构中缀表达式转后缀表达式.doc_第3页
第3页 / 共13页
数据结构中缀表达式转后缀表达式.doc_第4页
第4页 / 共13页
数据结构中缀表达式转后缀表达式.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、中缀转后缀,后缀求值13070319张乐2015.4.211、 需求分析明确规定:需要运用栈来实现对中缀表达式转换为后缀表达式,并且再次输入后缀表达式,得出结果。输入形式、输入值的范围;中缀表达式的输入,操作数必须不为负数,并且表达式以=结束输入输出形式;第一次输出后缀表达式,接着输出后缀表达式求得的值程序功能;中缀表达式转换为后缀表达式,后缀表达式求值测试数据:10(20-10)+10=2、 概要设计ADT 定义:class arrStackprivate:int mSize; /栈最多存放元素个数int top; /栈顶指针T *st; /存栈元素的数组public:arrStack(in

2、t sizee) /创建定长顺序栈的实例mSize = sizee;top = -1;st =new TmSize;arrStack( ) arrStack( ) void clear( ) bool isEmpty( )bool push(const T item)bool pop(Ttop = -1;st =new TmSize;arrStack( ) /清空top = -1;arrStack( ) /销毁delete st;void clear( ) /清空top = -1;bool isEmpty( ) /若栈已空返回 trueif(top=-1)return true;return

3、false;bool push(const T item) /入栈 O(1)/*if (top=(mSize-1) /若上溢T *newst = new T mSize*2 ; /扩容到 2 倍for(int i = 0; iin;while(in!=)ai=in;cinin;i+;ai=;i=0;while(ai!=)cout=0s(100);int newope,ope1,ope2,e;char c;coutc,c!=)switch(c)case +: ope2=s.gettop();s.pop(e);ope1=s.gettop();s.pop(e);s.push(ope1+ope2);b

4、reak;case -: ope2=s.gettop();s.pop(e);ope1=s.gettop();s.pop(e);s.push(ope1-ope2);break;case *: ope2=s.gettop();s.pop(e);ope1=s.gettop();s.pop(e);s.push(ope1*ope2);break;case /: ope2=s.gettop();s.pop(e);ope1=s.gettop();s.pop(e);s.push(ope1/ope2);break;default:cin.putback(c);cinnewope;s.push(newope);b

5、reak;cout#includeusing namespace std;template class arrStackprivate:int mSize; /栈最多存放元素个数int top; /栈顶指针T *st; /存栈元素的数组public:char a100;char b100;arrStack(int sizee) /创建定长顺序栈的实例mSize = sizee;top = -1;st =new TmSize;arrStack( ) /清空top = -1;arrStack( ) /销毁delete st;void clear( ) /清空top = -1;bool isEmpt

6、y( ) /若栈已空返回 trueif(top=-1)return true;return false;bool push(const T item) /入栈 O(1)/*if (top=(mSize-1) /若上溢T *newst = new T mSize*2 ; /扩容到 2 倍for(int i = 0; iin;while(in!=)ai=in;cinin;i+;ai=;i=0;while(ai!=)cout=0s(100);int newope,ope1,ope2,e;char c;coutc,c!=)switch(c)case +: ope2=s.gettop();s.pop(e

7、);ope1=s.gettop();s.pop(e);s.push(ope1+ope2);break;case -: ope2=s.gettop();s.pop(e);ope1=s.gettop();s.pop(e);s.push(ope1-ope2);break;case *: ope2=s.gettop();s.pop(e);ope1=s.gettop();s.pop(e);s.push(ope1*ope2);break;case /: ope2=s.gettop();s.pop(e);ope1=s.gettop();s.pop(e);s.push(ope1/ope2);break;default:cin.putback(c);cinnewope;s.push(newope);break;cout m(100);m.input();i=m.trans();Caculator();

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报