- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
中缀表达式表示成二叉树
将一个中缀表达式表示成二叉树的形式,相关提示如下:
(1) 基本思路: 中缀先转换成后缀,然后再表示成二叉树。这样做起来要方便的多;
(2) 打印二叉树时,可以用课件上的逆时针旋转90度打印方式。
#includeiostream
#includestring
#included_except.h
using namespace std;
#ifndef STACK
#define STACK
const MAXSTACKSIZE=50;
templatetypename T
class stack //有限栈
{
public:
stack();
void push(const T item);
void pop();
T top();
const T top() const;
bool empty() const;
bool full() const;
int size() const;
private:
T stackList[MAXSTACKSIZE];
int topIndex;
};
template typename T
stackT::stack(){topIndex=-1;}
template typename T
void stackT::push(const T item)
{
if(full())
throw underflowError(miniStack top():stack empty);//exit(1);
topIndex++;
stackList[topIndex]=item;
}
template typename T
void stackT::pop()
{
if (empty())
throw underflowError(miniStack top(): stack empty);
topIndex--;
}
template typename T
T stackT::top()
{
if (empty()) throw underflowError(miniStack top(): stack empty);
return stackList[topIndex];
}
template typename T
const T stackT::top() const
{
if (empty()) throw underflowError(miniStack top(): stack empty);
return stackList[topIndex];
}
template typename T
bool stackT::empty() const
{
return topIndex == -1;
}
template typename T
bool stackT::full() const
{
return topIndex==MAXSTACKSIZE-1;
}
template typename T
int stackT::size() const
{
return topIndex+1;
}
#endif
#includestring
#includestack.h
using namespace std;
class expressionSymbol
{
public:
expressionSymbol();
expressionSymbol(char ch);
friend bool operator= (const expressionSymbol left, const expressionSymbol right )
{
return left.stackPrecedence = right.inputPrecedence;
}
char getOp() const;
private:
char op;
int inputPrecedence;
int stackPrecedence;
};
expressionSymbol::expressionSymbol()
{}
expressionSymbol::expressionSymbol(char ch)
{ op = ch;
switch(op)
{ case +:
case -: inputPrecedence = 1;
stackPrecedence = 1; break;
case *:
case %:
case /: inputPrecedence
您可能关注的文档
- FGDC Homeland Security Working Group - Federal :美国联邦国土安全工作组.doc
- GBT19630产品召回控制程序.doc
- eh油动机原理及典型故障案例分析.ppt
- GCS开关柜使用说明书使用帮助GCS使用说.doc
- HSZ600环式碎煤机转子更换施工方案.doc
- HSF有害物质管理控制程序.doc
- HTML5框架Agile的使用教程 - 移动应用开发中间件ExMobi.docx
- Human Resource Master Plan - Qatar Petroleum:人力资源规划-卡塔尔石油.ppt
- 9天鹅大虾和梭鱼.ppt
- icom会议志愿者英语培训.ppt
最近下载
- 管材安装合同范本(12篇).docx VIP
- 滇人版 七年级 第九册 第10课 文件合并与超链接课件.pptx VIP
- 古镇商业运营与旅游开发思路.pptx VIP
- 02S515排水检查井图集.pdf VIP
- 标准图集-23S519-小型排水构筑物.pdf VIP
- 形考作业(五)配置DNS服务实训.docx VIP
- 高钾血症应急演练脚本.docx VIP
- xx河防洪治理工程施工组织设计.doc VIP
- 新解读《GB_T 17934.3-2021印刷技术 网目调分色版、样张和生产印刷品的加工过程控制 第3部分:新闻纸冷固型平版胶印》最新解读.pptx VIP
- 简式数控车床使用说明书(中英文).pdf VIP
原创力文档


文档评论(0)