- 7
- 0
- 约8.03千字
- 约 26页
- 2020-07-14 发布于天津
- 举报
精品资料
精品资料
树和二叉树
、实验目的
掌握二叉树的结构特征,以及各种存储结构的特点及适用范围。
掌握用指针类型描述、访问和处理二叉树的运算。
、实验要求
认真阅读和掌握本实验的程序。
上机运行本程序。
保存和打印出程序的运行结果,并结合程序进行分析。
按照二叉树的操作需要,重新改写主程序并运行,打印出文件清单和运 行结果。
、实验内容
输入字符序列,建立二叉链表。
按先序、中序和后序遍历二叉树(递归算法)。
按某种形式输出整棵二叉树。
求二叉树的高度。
求二叉树的叶节点个数。
交换二叉树的左右子树。
借助队列实现二叉树的层次遍历。
在主函数中设计一个简单的菜单,分别调试上述算法。
为了实现对二叉树的有关操作,首先要在计算机中建立所需的二叉树。 建立 二叉树有各种不同的方法。一种方法是利用二叉树的性质 5来建立二叉树,
输入数据时要将节点的序号(按满二叉树编号)和数据同时给出: (序号,
数据元素0)。另一种方法是主教材中介绍的方法,这是一个递归方法,与 先序遍历有点相似。数据的组织是先序的顺序,但是另有特点,当某结点的 某孩子为空时以字符“#”来充当,也要输入。若当前数据不为“#”则申请一 个结点存入当前数据。递归调用建立函数,建立当前结点的左右子树。
四、 解题思路
1、 先序遍历:O访问根结点,G先序遍历左子树,C3先序遍历右子树
2、 中序遍历:O中序遍历左子树,C2访问根结点,。中序遍历右子树
3、 后序遍历:O后序遍历左子树,C2后序遍历右子树,C3访问根结点
4、 层次遍历算法:采用一个队列 q,先将二叉树根结点入队列,然后退队列, 输出该结点;若它有左子树,便将左子树根结点入队列;若它有右子树,便将右 子树根结点入队列,直到队列空为止。因为队列的特点是先进后出,所以能够达 到按层次遍历二叉树的目的。
五、 程序清单
#in cludestdio.h
#in cludestdlib.h
#defi ne M 100
typedef char Etype; //定义二叉树结点值的类型为字符
型
//树结点结构typedef struct BiTNode
//树结点结构
Etype data;
struct BiTNode *lch,*rch;
}BiTNode,*BiTree;
BiTree que[M];
int fron t=0,rear=0;
//函数原型声明
BiTNode *creat_bt1();
BiTNode *creat_bt2();
void preorder(BiTNode *p);
void ino rder(BiTNode *p);
void postorder(BiTNode *p);
void enq ueue(BiTree);
BiTree delqueue();
void levorder(BiTree);
int treedepth(BiTree);
void prtbtree(BiTree,i nt);
void excha nge(BiTree);
in t leafco un t(BiTree);
void pain tleaf(BiTree);
BiTNode *t;
int coun t=0;
//主函数
void mai n() {
char ch;
int k;
do{
prin tf(\n\n\n);
prin tf(\n=================== 主菜单===================);
prin tf(\n\n 1.建立二叉树方法 1);
prin tf(\n\n 2.建立二叉树方法 2);
prin tf(\n\n 3?先序递归遍历二叉树”);
prin tf(\n\n 4?中序递归遍历二叉树”);
prin tf(\n\n 5.后序递归遍历二叉树”);
printf(\n\n 6.层次遍历二叉树”);
prin tf(\n\n 7.计算二叉树的高度”);
prin tf(\n\n 8.计算二叉树中叶结点个数 ”);
prin tf(\n\n 9.交换二叉树的左右子树 ”);
printf(\n\n 10.打印二叉树”);
printf(\n\n 0.结束程序运行”);
prin tf(\n============================================);
printf(\n 请输入您的选择(0,1,2,3,4,5,6,7,8,9,10));
printf(
printf(二叉树的叶结点为:);pai ntleaf(t);
精品资料
{printf(后序遍历二叉树
{printf(后序遍历二叉树:);
精品资料
sea nf(%d,k);
switch(k)
{
case 1:t=creat_bt1( );
您可能关注的文档
最近下载
- 传承雷锋精神,争做时代新人演讲稿(5篇融入名人故事).docx VIP
- 水电自动装置检修工水电自动装置检修工(高级技师).doc VIP
- 杭州 2023年兽医实验室考试:兽医实验室技术理论真题模拟汇编(共285题).doc VIP
- 毕业论文-积木玩具的塑料模具设计.doc VIP
- 50045 GBJ45-82 高层民用建筑设计防火规范.pdf VIP
- 中华民国土地法.pptx VIP
- 刑法涉及安全生产的16宗罪PPT课件.pptx VIP
- 用于风功率预测的区域气象大模型技术指南.docx
- B14 2900-20090330-C-电器接插件密封.doc VIP
- 《天然产物化学》课程教学大纲.doc VIP
原创力文档

文档评论(0)