大数据结构中缀表达式转后缀表达式.docx
- 文档编号:25397577
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:17
- 大小:75.11KB
大数据结构中缀表达式转后缀表达式.docx
《大数据结构中缀表达式转后缀表达式.docx》由会员分享,可在线阅读,更多相关《大数据结构中缀表达式转后缀表达式.docx(17页珍藏版)》请在冰豆网上搜索。
大数据结构中缀表达式转后缀表达式
中缀转后缀,后缀求值
13070319
乐
2015.4.21
1、需求分析
明确规定:
需要运用栈来实现对中缀表达式转换为后缀表达式,并且再次输入后缀表达式,得出结果。
输入形式、输入值的围;中缀表达式的输入,操作数必须不为负数,并且表达式以=结束输入
输出形式;第一次输出后缀表达式,接着输出后缀表达式求得的值
程序功能;中缀表达式转换为后缀表达式,后缀表达式求值
测试数据:
10(20-10)+10=
2、概要设计
ADT定义:
classarrStack
{
private:
intmSize;//栈最多存放元素个数
inttop;//栈顶指针
T*st;//存栈元素的数组
public:
arrStack(intsizee){//创建定长顺序栈的实例
mSize=sizee;
top=-1;
st=newT[mSize];}
arrStack(){}
~arrStack(){}
voidclear(){}
boolisEmpty(){}
boolpush(constTitem){}
boolpop(T&item){}
T&gettop(){}
boolinput(){}
inttrans(){}
boolCaculator(){}
}
主程序流程:
各程序模块间的调用关系;
3、详细设计
实现ADT定义的数据类型:
arrStack(intsizee){//创建定长顺序栈的实例
mSize=sizee;
top=-1;
st=newT[mSize];
}
arrStack(){//清空
top=-1;
}
~arrStack(){//销毁
delete[]st;
}
voidclear(){//清空
top=-1;
}
boolisEmpty(){//若栈已空返回true
if(top==-1)
returntrue;
returnfalse;
}
boolpush(constTitem)//入栈O
(1)
{
/*if(top==(mSize-1)){//若上溢
T*newst=newT[mSize*2];//扩容到2倍
for(inti=0;i<=top;i++)//复制
newst[i]=st[i];
delete[]st;//释放旧空间
st=newst;//恢复st
mSize*=2;//改写mSize
}*/
st[++top]=item;//插入item
returntrue;
}
boolpop(T&item)//出栈O
(1)
{
if(top==-1){
cout<<"空栈不能删"< returnfalse; } else{ item=st[top--]; returntrue; } } T&gettop()//取栈顶O (1) { if(top==-1){
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 中缀 表达式 后缀