数据结构实验7:二叉树子系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
验证性实验7:二叉树子系统
班级学号BX100420 姓名施程程成绩
1.实验目的
(1)掌握二叉树的特点及其存储的方式。
(2)掌握二叉树的创建和显示方法。
(3)复习二叉树遍历的概念,掌握二叉树遍历的基本方法
(4)掌握求二叉树的叶结点数、总结点数和深度等基本算法。
2.实验内容
(1)按屏幕提示用前序方法建立一棵二叉树,并能按凹入法显示二叉树结构。(2)编写前序遍历、中序遍历、后序遍历、层次遍历程序。
(3)编写求二叉树的叶结点数、总结点数和深度的程序。
(4)设计一个选择式菜单,以菜单方式选择下列操作。
二叉树子系统
********************************************");
* 1---------建二叉树 *");
* 2---------凹入显示 *");
* 3---------先序遍历 *");
* 4---------中序遍历 *");
* 5---------后序遍历 *");
* 6---------层次遍历 *");
* 7---------求叶子数 *");
* 8---------求结点数 *");
* 9---------求树深度 *");
* 0---------返回 *");
********************************************");
请选择菜单号(0--9):
3.实验步骤:
(1)输入并调试程序;
(2)按下图建立二叉树;
二叉树子系统
******************************************
* 1---------建二叉树*
* 2---------凹入显示*
* 3---------先序遍历*
* 4---------中序遍历*
* 5---------后序遍历*
* 6---------层次遍历*
* 7---------求叶子数*
* 8---------求结点数*
* 9---------求树深度*
* 0---------返回*
******************************************
请选择菜单号:1
请输入按先序建立二叉树的结点序列:
说明:'0'代表后继结点为空,请逐个输入,按回车键输入下一结点。请输入根结点:a
请输入a结点的左子结点:b
请输入b结点的左子结点:d
请输入d结点的左子结点:0
请输入d结点的右子结点:0
请输入b结点的右子结点:0
请输入a结点的右子结点:c
请输入c结点的左子结点:e
请输入e结点的左子结点:0
请输入e结点的右子结点:0
请输入c结点的右子结点:f
请输入f结点的左子结点:0
请输入f结点的右子结点:0
(3)检查凹入法显示的二叉树是否正确;
二叉树子系统
******************************************
* 1---------建二叉树*
* 2---------凹入显示*
* 3---------先序遍历*
* 4---------中序遍历*
* 5---------后序遍历*
* 6---------层次遍历*
* 7---------求叶子数*
* 8---------求结点数*
* 9---------求树深度*
* 0---------返回*
******************************************
请选择菜单号:2
凹入表示法:
a ▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃
b ▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃
d ▃▃▃▃▃▃▃▃▃▃▃▃▃
c ▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃
e ▃▃▃▃▃▃▃▃▃▃▃▃▃
f ▃▃▃▃▃▃▃▃▃▃▃▃▃
按回车键返回主菜单!
(4)检查其他算法的正确性举例:
二叉树子系统
******************************************
* 1---------建二叉树*
* 2---------凹入显示*
* 3---------先序遍历*
* 4---------中序遍历*
* 5---------后序遍历*
* 6---------层次遍历*
* 7---------求叶子数*
* 8---------求结点数*
* 9---------求树深度*
* 0---------返回*
******************************************
请选择菜单号:3
该二叉树的先序遍历序列为:a b d c e f
4.实验程序
#include
#define TREEMAX 100
typedef struct BT
{
char data;
BT *lchild;
BT *rchild;
}BT;
BT *CreateTree();
void ShowTree(BT *T);
void Preorder(BT *T);
void Postorder(BT *T);
void Levelorder(BT *T);
void Inorder(BT *T);
void Leafnum(BT *T);
void Nodenum(BT *T);
int TreeDepth(BT *T);
int count=0;