ImageVerifierCode 换一换
格式:DOCX , 页数:8 ,大小:20.61KB ,
资源ID:5838871      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5838871.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(二叉树求表达式的值.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

二叉树求表达式的值.docx

1、二叉树求表达式的值(一)实验目的本实验以二叉树的创建与访问算法设计作为实验容,掌握树型结构的实现方法,培养解决负责问题的能力。(二)实验容1、 编写生成二叉树的函数,二叉树的元素从键盘输入;2、 编写在二叉树中输入表达方式的函数;3、 编写在二叉树中实现表达方式的值的函数;4、 编写遍历并输出二叉树的函数。(三) 实验要求1、 掌握树型结构的机器表示;2、 掌握树型结构之上的算法设计与实现;3、 列表对比分析两种数据结构的相应操作的时间复杂度、空间复杂度,阐明产生差异的原因。(四) 实验设计思路实验采用递归创建二叉树的表达,并实现了后序遍历二叉数表达式,既逆波兰表达式的输出,编写函数计算表达式

2、的值,并输出。对实验题目进行细分,逐一实现函数预期的功能,如下图,先序输入创建二叉树表达式:+*-99#89#2#/66#3#输出结果:422实验报告(一)部分算法流程图1先序创建二叉树表达式(五)程序清单#i n c l u d e#i n c l u d e#in cludevstri ng. h #d ef i ne len 20#d efi n e NULL 0 st ru ct treechar d at a l e n ;tree * l ch i l d ,* r ch i l d ;void createtree(tree* & tre)/ / 创建二叉树char ch l e

3、 n ;scanf (” %s , ch);g et ch ar ();if(strcmp(ch,#) = = 0)t r e= NULL;elset r e= (tree *)malloc(sizeof(tree); st rcpy (tre- d at a,ch );cr eatet ree(t re- l ch i l d );createtree(tre - r ch i l d); void in putt ree(tree *t re)/ 输出 二叉树 if(tre!= NULL)prin t f ( %s, t r e - d at a);N U LL)i f (t r e- l

4、child!=NULL|tre- r ch i l d !pri ntf( ();in puttree(tre - Ichild);i f (t r e - rch i Id ! = N ULL)pri n t f (,);in p u tt ree(t re- rchi Id);pri ntf(); void t r av e r se t r e e(t re e *t re)/ 后续遍历 if(tre!= N ULL)t raver set ree(t re- l ch i l d );t raver set ree(t re- r ch i l d );p ri n tf ( %s ,

5、t re- d at a); void in ordertravers(tree*tre)/ / 中 续遍历if(tre!= N ULL)t raver set ree(t re- Ichild);p ri n tf ( %s ,t re- d at a);t raver set ree(t re- r ch i l d ); double so l ut io n(tree * t r e)/ / 二叉树表达式求值if(tre- l ch ild = = N ULL & tre- rchild = = NULL & tre-dataO = O & & t re- d at a 0 d at

6、a);e l sesw i tch (t re- d at a0)rch ild);rc h ild);- r c h i l d );case*:retur n so l u t i on( tre - l ch i l d )* so l u t i on( t r e - case - :r et u r n so l u t i on( tre- l ch i l d )- so l u t i on( t r e - case + : re t u r n so l u t i on( tre - l c h i l d) + sol u t i on( t re case/: re

7、t u rn soluti on( tre - lchild)/soluti on( t re - rchild);i n t m a i n ()tree * t re ;double sum;i n t ch; d ori ntf ( 选择下面功能 n );ri ntf (1.先序创建二叉数表达式n ri ntf(2.后序遍利二叉数表达式n ri ntf(3.求二叉数表达式的数值n ri ntf(4.中序遍利二叉数表达式n ri ntf(5.退出二叉数nri ntf( n)P);P);P);P);P);PPsca nf (%d,&ch);sw i tch(ch)case 1 :p r i

8、n t f (” 输入创建的二叉树: n );g etchar();createtree(tre) ;in puttree(tre);p r i n t f ( n ) ;b r e a k ;case 2 :p r i n t f (后序遍历的二叉树:n );t raver set ree(t re) ;p r in t f ( n ”);break;case 3 :su m = so l u t i on( t r e); p r in t f (二叉树 表达式 的值为=%f n ,sum);break;case 4 :p r i n t f (中序遍历的二叉树:n);in ordertr

9、avers(tre);pri ntf(” n );break; case 5 : break; w h i l e (ch ! = 5);retu rn 0;(六)实验结果 选择下面功能 1.先 序创建二叉数 表达式2.后序遍利二叉数表达式3.求二叉数表达式的数值4.中序遍利二叉数表达式5.退出二叉数输入创建的二叉树:+8 9#2#/6 6#3# + (*(- (99,8 9),2),/(6 6,3 ) 选择下面功能1.先序创建二叉数表达式2.后序遍利二叉数表达式3.求-二二叉数表达式的数值4.中序遍利二叉数表达式5.退岀:二叉数2后序遍历的二叉树:9989-2*663/+选择下面功能1.先序

10、创建二叉数表达式2.后序遍利二叉数表达式3.求二二叉数表达式的数值4.中序遍利二叉数表达式5.退岀:二叉数4中序遍历的二叉树:9989-2*+663/选择下面功能1.先 序创建 二叉数 表达式2.后序遍利二叉数表达式3.求二叉数表达式的数值4.中序遍利二叉数表达式5.退出二叉数3二叉树表达式的值为= 4 2. 000000 选择下面功能 1.先序创建二叉数表达式2.后序遍利二叉数表达式3.求二叉数表达式的数值4.中序遍利二叉数表达式5.退出二叉数5请按任意键继续(7)实验遇到的问题二叉树的递归创建只能先序创建吗?若采用中序或后序创建, 必须先输入左子树,我们所定义二叉树往电脑输入时,必须有终止条件,比如if(strcmp(ch,#)=0)tre=NULL;所以,一颗二叉树中序或后序建立时,必先输入左子树,而左子树是终止条件,所以,无法建立 一颗二叉树。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1