一、实验目的
掌握二叉树的定义、基本操作,综合应用所学的知识分析问题、解决问题,学会用建立二叉树并对其进行遍历,提高实际编程能力及程序调试能力。
二、实验要求
建立二叉树,并进行遍历(前序遍历、中序遍历、后序遍历)。
三、实验方法内容
二叉树的非递归遍历是用显示栈来储存二叉树的节点指针,先序遍历时,按二叉树的前序遍历的顺序访问接点,并将结点指针入栈,直到栈顶指针指向结点的左指针域为空时取出栈顶指针并删除栈顶指针,访问刚取出的指针指向的结点的右指针指向结点并将其指针入栈,如此反复执行则为非递归操作。
二叉树的递归遍历:若二叉树为空,则空操作
先序遍历:
(a)访问根结点;
(b)先序遍历左子树;
(c)先序遍历右子树。
中序遍历:
(a)中序遍历左子树
(b) 访问根结点;
(c)中序遍历右子树。
后序遍历:
(a)后序遍历左子树
(b)后序遍历右子树
(c)访问根结点;
层次遍历:
从二叉树第一层(根节点)开始,从上至下逐层遍历,在同一层中,则按从左到右的顺序对结点逐个访问。
(1)void CreateBiTree 以二叉链表表示二叉树,建立一棵二叉树;
(2)void PreOrderTraverse 输出二叉树的前序遍历结果;
(3)void InOrderTraverse 输出二叉树的中序遍历结果;
(4)void PostOrderTraverse 输出二叉树的后序遍历结果;
(5)int LeafNodeCount 统计二叉树的叶结点个数;
(6)int Node Count 统计二叉树的结点个数;
(7)int Depth 计算二叉树的深度。
(8)int Swap 交换二叉树每个结点的左孩子和右孩子;
void CreateBiTree
void PreOrderTraverse
void InOrderTraverse
void PostOrderTraverse
int LeafNodeCount
int NodeCount
int Depth
int Swap
你这是要写代码还是报告哦,内容这么多。
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y
C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html