资源描述:
《实验2二-叉-树-的基本操作及哈夫曼编码-(1).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、二叉树的基本操作及哈夫曼编码实现实验目的1掌握二叉树的结构特征,以及各种存储结构的特点及适用范围。2掌握用指针类型描述、访问和处理二叉树的运算。3掌握哈夫曼编码实验要求认真阅读和掌握本实验的程序上机运行程序。保存和打印出程序的运行结果,并结合程序进行分析。按照二叉树的操作需要,重新改写主程序并运行,打印出文件清单和运行结果。实验内容1输入字符序列,建立二叉链表。2按先序、中序和后序遍历二叉树(递归算法)。3按某种形式输出整棵二叉树。4求二叉树的高度。5求二叉树的叶节点个数。6交换二叉树的左右子树。7借助队列实现二叉树的层次遍历
2、。8哈夫曼编码的实现(选作)9在主函数中设计一个简单的菜单,分别调试上述算法。运行结果:===================主菜单===================1.建立二叉树方法12.建立二叉树方法23.先序递归遍历二叉树4.中序递归遍历二叉树5.后序递归遍历二叉树6.层次遍历二叉树7.计算二叉树的高度8.计算二叉树中叶结点个数9.交换二叉树的左右子树10.打印二叉树0.结束程序运行============================================请输入您的选择(0,1,2,3,4,5,6,7,
3、8,9,10)1请输入二叉树各结点的编号和对应的值(如1,a):1,a请继续输入二叉树各结点的编号和对应的值:2,b请继续输入二叉树各结点的编号和对应的值:3,c请继续输入二叉树各结点的编号和对应的值:4,d请继续输入二叉树各结点的编号和对应的值:6,e请继续输入二叉树各结点的编号和对应的值:7,f请继续输入二叉树各结点的编号和对应的值:9,g请继续输入二叉树各结点的编号和对应的值:13,h请继续输入二叉树各结点的编号和对应的值:0,#===================主菜单===================");1.
4、建立二叉树方法12.建立二叉树方法23.先序递归遍历二叉树4.中序递归遍历二叉树5.后序递归遍历二叉树6.层次遍历二叉树7.计算二叉树的高度8.计算二叉树中叶结点个数9.交换二叉树的左右子树10.打印二叉树0.结束程序运行============================================请输入您的选择(0,1,2,3,4,5,6,7,8,9,10)4中序遍历二叉树:dgbaehcf===================主菜单===================");1.建立二叉树方法12.建立二叉树方法
5、23.先序递归遍历二叉树4.中序递归遍历二叉树5.后序递归遍历二叉树6.层次遍历二叉树7.计算二叉树的高度8.计算二叉树中叶结点个数9.交换二叉树的左右子树10.打印二叉树0.结束程序运行============================================请输入您的选择(0,1,2,3,4,5,6,7,8,9,10)7二叉树的高度为:4程序清单#include#include#defineM100typedefcharEtype;//定义二叉树结点值的类型为字符型typ
6、edefstructBiTNode//树结点结构{Etypedata;structBiTNode*lch,*rch;}BiTNode,*BiTree;BiTreeque[M];intfront=0,rear=0;//函数原型声明BiTNode*creat_bt1();BiTNode*creat_bt2();voidpreorder(BiTNode*p);voidinorder(BiTNode*p);voidpostorder(BiTNode*p);voidenqueue(BiTree);BiTreedelqueue();voi
7、dlevorder(BiTree);inttreedepth(BiTree);voidprtbtree(BiTree,int);voidexchange(BiTree);intleafcount(BiTree);voidpaintleaf(BiTree);BiTNode*t;intcount=0;//主函数voidmain(){charch;intk;do{printf("");printf("===================主菜单===================");printf("1.建
8、立二叉树方法1");printf("2.建立二叉树方法2");printf("3.先序递归遍历二叉树");printf("4.中序递归遍历二叉树");printf("5.后序递归遍历二叉树");printf("6.层次遍历二叉树");p