栈应用后缀表达式计算

栈应用后缀表达式计算

ID:11301446

大小:39.59 KB

页数:5页

时间:2018-07-11

栈应用后缀表达式计算_第1页
栈应用后缀表达式计算_第2页
栈应用后缀表达式计算_第3页
栈应用后缀表达式计算_第4页
栈应用后缀表达式计算_第5页
资源描述:

《栈应用后缀表达式计算》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、后缀表达式计算LinkStack.cpp#includeusingnamespacestd;//单链表的结点结构体:templatestructNode{DataTypedata;Node*next;};//带头结点的单链表类的声明templateclassLinkStack{public:LinkStack(){top=NULL;}//构造函数~LinkStack();//析构函数boolIsEmpty();//栈空操作DataTypeGetTop();

2、//得到栈顶值操作voidPush(DataTypex);//进栈操作DataTypePop();//出栈操作private:Node*top;};//析构函数,析构函数将单链表中所有结点的存储空间释放。templateLinkStack::~LinkStack(){Node*q;while(top!=NULL){q=top;//暂存释放结点top=top->next;//top指向被释放结点的下一个结点deleteq;//释放结点}cout<<"链表已经删除。"<

3、boolLinkStack::IsEmpty(){return(top==NULL)?true:false;};//进栈操作templatevoidLinkStack::Push(DataTypex){Node*s;s=newNode;//申请一个数据成为x的结点ss->data=x;s->next=top;top=s;};//出栈操作te

4、mplateDataTypeLinkStack::Pop(){Node*p;DataTypex;if(IsEmpty()){cout<<"栈空无值弹出"<data;p=top;top=top->next;deletep;returnx;};//返回栈顶值操作templateDataTypeLinkStack::GetTop(){if(IsEmpty()){cout<<"栈空无值"<

5、exit(1);}returntop->data;};栈应用5PostExp.cpp#include"LinkStack.h"//后缀表达式计算的栈类声明templateclassPostExp{public:PostExp(){};//构造函数voidRun();//执行表达式计算voidClear();//清栈操作private:LinkStacks;//栈对象svoidEnter(DataTypenum);//进栈操作boolIn(charop);//判断操作数boolGetTwoOperands(

6、DataType&operand1,DataType&operand2);//从栈中推出两个操作数voidCompute(charop);//形成运算指令,进行计算};//进栈操作templatevoidPostExp::Enter(DataTypenum){s.Push(num);}//将操作数的值num进操作数栈//从栈中推出两个操作数templateboolPostExp::GetTwoOperands(DataType&operand1,DataT

7、ype&operand2){if(s.IsEmpty())//判断栈是否空{cout<<"缺少右操作数"<voidPostExp::Compute(charop){boolretult;DataTypeoperand

8、1,operand2;retult=GetTwoOperands(operand

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

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

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