实验五二叉树的操作
一、实验目的
1.掌握二叉树的结构特征,以及各种存储结构的特点及适用范围;
2.掌握用指针类型描述、访问和处理二叉树的运算;
3.进一步掌握指针变量、动态变量的含义。
二、实验原理
由于树的定义是递归的,对树的处理原则上也应该是用递归的方式。二叉树是一种非常重要的类型。针对二叉树的操作主要有三种遍历(先序遍历、中序遍历、后序遍历),遍历二叉树是二叉树中各运算的基础。
三、实验内容(1必做,2选作)
1.将下图中的二叉树用二叉链表表示:
(1)用三种遍历算法遍历该二叉树,给出对应的输出结果;
(2)写一个函数对二叉树搜索,若给出一个结点,根据其是否属于该树,输出true 或者false。
2.哈夫曼编码的生成
当哈夫曼树生成后,对由根节点到各叶结点(对应于待编码的符号)的路径作0-1 编码就得到相应的哈夫曼编码。任何一棵满二叉树(a full binary tree)都可以看作是一棵哈夫曼树。
所以本题要求:造一棵满二叉树,根据这棵二叉树生成相应的哈夫曼编码。
四、实验步骤(1为例)
1.定义二叉树的结点类型及二叉树类型
2.递归方式建立二叉树(算法参见课本)
3.三种方式遍历二叉树(算法参见课本)
五、实验提交资料
1.算法思想描述(或源代码)
2.测试结果与分析
3.收获与体会
要求:将以上资料收集齐后,撰写实验报告。