实验3 - 二叉树的建立及基本操作
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三二叉树的建立及基本操作
实验目的:
本次实验的主要目的是熟练掌握二叉树的定义、三序(先序、中序、后序)遍历方法,并用遍历思想求解具体二叉树应用问题。通过程序实现,体会递归算法的优缺点。
实验要求:
用C语言编程实现二叉树的基本操作,并完成下述函数功能:
(1)CreateBiTree( ):根据先序遍历序列生成一棵二叉树
(2)Depth( ):求此二叉树的深度
(3)CountLeaf( ):统计该二叉树中叶子结点的个数
(4)InOrderTraverse( ):中序遍历二叉树
(5)PostOrderTraverse( ):后序遍历二叉树
在主函数main( )中调用各个子函数完成单链表的基本操作。例:
void main()
{ BiTree T;
CreateBiTree (T);
int d= Depth ( T );
printf(“深度为%d”, d);
int num= CountLeaf ( T );
printf(“叶子结点个数为%d”, num);
InOrderTraverse ( T );
PostOrderTraverse ( T );
}
//注意函数调用时,只传递参数名称,不需要传递参数类型和&符号。
[实现提示]
采用特殊符号,如*号表示空树的情况。
通过输入扩展的先序序列建立一棵二叉树,即,二叉树中结点为空时应输入*符号表示。
[测试数据]
由学生自己确定,注意边界数据。
程序检查时,由老师提供用于建树的初始输入序列。
程序源码:(后付纸)
程序运行结果:
实验心得体会:
有一些概念不明白,看书之后弄懂了,仔细看了二叉树遍历的知识点,问了同学有了思路。熟悉了二叉树的基本操作,掌握了二叉树实现。