一、实验目的
-
掌握二叉树的建立和遍历
-
掌握二叉树遍历的应用
-
掌握线索二叉树的建立和遍历
-
掌握hufmman编码
二、实验内容 -
递归建立和层次遍历二叉树
-
二叉树的深度非递归遍历
-
统计二叉树中右孩子节点的个数
-
线索二叉树的建立和遍历
-
哈夫曼编码
三、实验环境
在PTA平台进行实验
四、实验要求根据每个实训的要求完成代码提交和测评
五、实验步骤
描述算法的原理或实现流程(测评完全正确或部分正确的实训)
1.递归建立和层次遍历二叉树
题目:本题要求编写建立二叉树的函数和层次遍历二叉树的函数
实现流程:
(1) 建立二叉树
我在建立二叉树时,用先序遍历的方式,输入的是扩展二叉树,也就是要告诉计算机什么是叶结点,否则将一直递归,当输入“#”时,指针指向NULL,说明是叶结点。
(2) 层次遍历二叉树
①创建空队列LinkQueue queue=SetNullQueue_Link();
②根结点不为空,根结点入队EnQueue_link(queue,bt);
③队列不空,循环执行操作while(!IsNullQueue_Link(queue))
④去队头元素,出队;
⑤左、右孩子不空,则入队。