二叉树的先序、后序、中序层次遍历 (2)
《C程序设计》课程实验
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
( ) 实验题目: 二叉树的先序、后序、中序层次遍历 姓名: 张叶 学号: 1212100022 班级: 12教技
专业: 教育技术学 指导老师: 黄老师 系名: 体育工程与信息技术学院
实验时间: 11.23 实验地点: 图书馆
【实验概述】
1. 实验目的
用c语言实现树的遍历,同时在对数据存储时用到前面的栈,对一棵子树访问结束后通过出栈得到相应的顺序。
2. 实验环境(使用的软件):vc++6.0
【实验内容】
1. 算法设计
(1)中序遍历的思路:先遍历左子树,在访问根节点,然后遍历右子树,在遍历左右子树时也是中序遍历,即先遍历左子树的左子树,在访问左子树的根节点,然后遍历右子树,直到左子树的左子树的左子树的左子树为空,即要找到最底层的左子树,也就是叶子节点的左子树,这可以通过反复执行p = p-〉lchild就可以实现,这里用递归实现,再访问右子树即p = p-〉rchild原理同左子树,循环结束的条件是p为空且栈为空。
(2)先序、中序后序遍历的算法
void XXBL(tree* root){
if(root->lchild!=NULL)
XXBL(root->lchild);
if(root->rchild!=NULL)
XXBL(root->rchild);
}
void ZXBL(tree* root){
if(root->lchild!=NULL)
ZXBL(root->lchild);
if(root->rchild!=NULL)
ZXBL(root->rchild);
}
void HXBL(tree* root){
if(root->lchild!=NULL)
HXBL(root->lchild);
if(root->rchild!=NULL)
HXBL(root->rchild);
//Do Something with root
}
(3)a先定义结构体用来存放树的左结点、右孩子节点、数据b创建树c先序、中序、后序遍
历函数d主函数用switch case实现对应的遍历
3.结果与分析(实验结果截图、结果分析)
【小结】(是否达到实验目的与要求、结果性能如何、是否有需要改进的地方) 【实验评分】(共20分)
课堂表现(2分) 实验结果(10分) 报告书写(8分) 成绩:
指导老师签名: 批阅日期: