




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
“前序算术表达式转换”问题报告,小组名:Super star02计网5,6,7班,问题描述:算术表达式与二叉树 之间存在着对 应关系,一算法将先序形式输入的 合法算术表达式按中序方式输出。,基本要求:假设 算术表达式可以含有变量( az)和二元运算符(+,-,*,/,(乘幂),实现下列功能:,(1)readExp(exp):从键盘读入一个合法的前序算 术表达式的字符串,并去除其 中的空格字符; (2)treeExp(exp): 根据合法的先序算术表达式建,立二叉树的存储结构,返回二叉树 的根结点指针;(3)printExp(exp):根据算术表达式的二叉树存储结 构,输出算术表达式的中序形式, 并能根据运算的优先级适当的加上 括弧;(4)freeTree(t):释放二叉树的存储空间。测试数据: (1)-a+bc; (2)/*abc (3)+a*b-cd (4)*/abc+def (5)*+ab-cd (6)-a-b-cd,算法思想:treeExp(exp)的算法思想是: 依次扫描先序表达式字符串exp,并以 扫描到的当前字符建立二叉树的结点 。若当前字符为变量,则该结点为叶 子结点,置左、右指针为空;若为运 算符,则递归调用 treeExp 建立该结点 的左子树和右子树。为了方便,可在 treeExp 函数中增加一个整形指针参数 ,以记录每次扫描的字符位置。Printexp(t)的算法描述是:,按二叉树的中序遍历序列输出各结点的值。当中序遍历输出左子树时,首先比较根结点和左孩子运算符的优先级,如果根结点运算符的优先级高于左孩子运算符的优先级,则在输出左子树时添加括号;当中序遍历输出右子树时,如果根结点运算符的优先级高于或等于有孩子运算符的优先级,则在输出右子树时添加括号。为此在该函数中调用了一个优先级计算函数opPriority,它返回字符的优先级,其返回值为: 1, 当c=+ 或+时 opPriority(c)= 2, 当c=*或c=/时 3, 当c=c时 4, 否则,算法实现,源程序# include # include # include #define maxNum 80Typedef struct BinNode char data: struct BinNode * Lchild,* Rchild; BinNode;Typedef BinNode *BinTree;,Void readExp(char exp) int i, j; printf(“输入前序算术表达式:” ,); while(* gets(exp)=0); i=j=0; while(expi!=0) / * 去除空格字符 */ if(expi!= ) i+; else expj+=expi+; expj=0;,BinTree treeExp(char exp,int *k) char ch; BinTree p; ch=exp(* k)+; / *扫描当前字符* / p=(BinTree)malloc(sizeof(BinNode); p-data=ch; / *建立当前字符的节点* / if(ch=a,Int opPriority(char c) if(c=+|c=-) return(1); if(c=*|c=/) return(2); if(c=) return(4);,Void printExp(BinTree t) int pri,pri1; char ch; ch=t-data; if(ch=a ,/*主程序*/Void main() Char ch,expmaxNum Int k; BinTree p; ch=Y; while(ch=Y|ch=y) readExp(exp); k=0; p=treeExp(exp, ,运行结果:输入前序算术表达式:-a+bc中序表达式为:a-(b+c)输入前序算术表达式:/ *abc中序表达式为:a*b/c输入前序算术表达式:+a * b-cb中序表达式为:a+b * (c-d),算法分析,本算法在建立二叉树时采用递归算法,在用中序遍历二叉树时用非递归的算法。空间
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025呼和浩特旭阳中燃能源有限公司招聘21人模拟试卷附答案详解(典型题)
- 2025年湖南邵阳市公安局招聘辅警126人模拟试卷及参考答案详解一套
- 2025湖南新宁县事业单位和县属国有企业人才引进降低开考比例岗位考前自测高频考点模拟试题及完整答案详解
- 2025合同范本下载榜
- 2025北京航空航天大学机械工程及自动化学院聘用编科研助理F岗招聘1人模拟试卷及答案详解(夺冠)
- 2025年福建省莆田市忠门半岛实业有限公司招聘1人模拟试卷完整答案详解
- 2025湖北恩施州来凤县宏晟工业发展有限公司招聘3人模拟试卷及答案详解(全优)
- 2025江苏苏州市张家港市建安工程机械质量检测有限公司招聘5人模拟试卷含答案详解
- 2025广东中山市三乡镇社区卫生服务中心招聘聘用制医务人员3人考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025辽宁抚顺新抚钢有限责任公司招聘拟聘用人员模拟试卷及答案详解(夺冠)
- 再生障碍性贫血护理教学查房
- 2025自考专业(国贸)考前冲刺试卷及完整答案详解
- CJ/T 94-2005饮用净水水质标准
- 浙江枧洋高分子科技有限公司年产15000吨无溶剂聚氨酯胶黏剂和5000吨水性胶黏剂、5000吨热熔胶建设项目环评报告
- 运动素质知到课后答案智慧树章节测试答案2025年春浙江大学
- 《急性肝功能衰竭》课件
- 2024年-2025年电梯检验员考试题库及答案
- 新入团团课培训
- 挖掘机安全培训教程
- 高中语文++《兼爱》课件+统编版高中语文选择性必修上册
- 学术论文文献阅读与机助汉英翻译智慧树知到答案2024年重庆大学
评论
0/150
提交评论