2023年数据结构二叉树的递归算法实验报告.docx
《2023年数据结构二叉树的递归算法实验报告.docx》由会员分享,可在线阅读,更多相关《2023年数据结构二叉树的递归算法实验报告.docx(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、齐鲁工业大学实验报告成绩课程名称数据结构指导教师单健芳 实验日期院(系)信息学院专业班级 计科(嵌入)14-1实验地点学生姓名高晨悦 学号 同组人 无实验项目名称二义树的递归算法一、实验目的和规定.实现二叉树的先序,中序与后序遍历的递归算法与非递归算法。1 .求二叉树的结点个数,叶子结点个数,二叉树的高度,度为2的结点个数。二、实验环境微型计算机vc 6. 0三、实验内容.实现二叉树的先序,中序与后序遍历的递归算法与非递归算法。1 .求二叉树的结点个数,叶子结点个数,二叉树的高度,度为2的结点个数。 四、实验环节实验内容1 .实现二叉树的先序,中序与后序遍历的递归算法与非递归算法。2 .求二叉
2、树的结点个数,叶子结点个数,二叉树的高度,度为2的结点个数。二.程序的设计思想1实现二叉树的先序,中序与后序遍历的递归算法与非递归算法。先构造二叉树,根据先序遍历的思想,输入根后,再输入左子树,直至左子树为空则输 入上一层右字树。i f (tree;二NULL)。co u t data ;ooo top+;o S t o p = tree;tree = t r e e- I Tree;00)e I sed o 。 o t r ee = S to p ;top-;。 tre e = tree r Tre e ;00)3 )vo i d InTra v e rs e (T r e e *tree)
3、 /中序遍历递归i f (t re e ! = NULL)。if (tree-ITr ee!=NULL)。 I n T rave r se (t r ee- IT r e e);。o c o ut dat a r Tree);。)o。eIse i f (tree-rTree!=NULL)。(。co u tdata r Tr e e );O 0e I seo。 co u tda t a;)void I n Ord e rTra v er s e (T ree *t r e e )/中序遍历非递归(。Tree *D 80= NULL;o i n t top =0;o while (t r e e!
4、 =N U L L) | | (top)(tree!二 NULL)t o p+ ;D top = tree;tree = tree-ITree;3 tree = D top;O 6 O top;c outtr e e-d a ta tree = treerTree;vo i d Pos t T r avers e (Tre e *tree) / / 后序遍历递归i f (tree!=NULL )if (t ree-ITree! =NULL)。Pos t Traverse (tree-lT re e);PostTr a verse (t ree-rTree);。co u ttr e e - d
5、ata;) o else i f (tree r T r e e!=NUL L)。(。Post T rave r se (t r ee-rTree);。 cou t dat a d a taITr e e;。1i f (to p ! =0)。 p =s t ack top r Tr e e;。if(p=NULL)(。 c o u tdata;。s if ( s tack to p ! = NULL )O 0wh iIe (i)。 i f (sta c k t op !=NUL L )。if(stackt op-rTr ee!=NULL)O d 0 d 。 i f (stack top- r T
6、r e e da t a-stack top+1 data)co u t s t ack t o p data。o i =0;0 0。 。 e I set a od j =0 ; oo o o o o e I s e。o i 二 0 ;,000)。 i f (t o p! =0) 。 o p =stack t o p-rTree;e I seo p=NULL ;,01/深度函数/深度函数i n t D ep t h Tre e (Tre e * t ree)(int u, v;if (tree =NULL ) return 0;u =DepthT ree (tree -I Tree);v =
7、DepthT r ee (tree-rTree);i f (uv)r e t u r n (u+1);ret urn (v+1);)i nt L eafsTree (Tree *t r e e) /子叶个数函数i nt n um1, num2;if (tree=NULL)ret urn 0 ;else i f (t r ee-ITree=NULL&t r ee-rTree-NULL)r e t u rn 1 ;e I se(num1 = Leaf s T re e (tre e - I Tr e e);num 2 = L eafsTree (t r e e-rTree); ret u rn (
8、 n urn 1 + n um2);i n t Nod e sT r ee ( T ree *tree) / /结点个数函数i n t num 1 , n u m2;if (t r ee =NULL)return 0;i f (tr e e -ITre e =N ULL&tre e r T ree=NU LL)return 1;else(nu m 1 =No d e s T ree (tree-I T r e e);num 2=NodesTree(tree -rT ree);return (num 1 +num2+ 1 );Ii nt T woch i I d ( T re e *t r ee
9、) 度为 2 的(i nt n=0;i f (tree二二NULL)r e tu r n (0);i f (t r ee- I Tree! = N ULL&tree-rTr e e ! =NULL)retur n (T wo c h i I d (t r ee- I Tree) +Tw o ch i I d(tree-rTr ee) +n);) ,F:杨婷结构TreeDebugTree.exe ,F:杨婷结构TreeDebugTree.exe00有 没有 没有有有 没没没有有有 没没没有有有 没没没有有F c C 没没cfs 、9 a f0 0 0 0 0 0 XIS X 000 0 0 d
10、sb居s居 居 居 居 居 b b 9 项-或成,发现秋杈初叔叔一发.秘;初 add W 遍干干豆干子子机机机4 Zi: W) : 0:Ih ?1ll1 W) 0It W) t 0L 有):1)uwwf 0 :0 历三 历二 历三=递归:a b d g c 三递归:d b g a f 三递归:d g b f s五、讨论、心得通过这次实验使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够 的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才干真正为社会服务, 从而提高自己的实际动手能力和独立思考的能力。(1)二叉树的非递归遍历是用显示栈来存储二叉树的结点指针,先序遍历时,按二
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 数据结构 二叉 递归 算法 实验 报告
限制150内