树和森林应用实验实验报告实验目的(1) 掌握树和森林的二叉链表表示方法
(2) 掌握树和二叉树的结构及算法之间的对应关系
(3) 掌握树的两种遍历算法及其应用
实验运行环境VisualC++实验任务为使实验程序简洁直观,下面的部分实验程序中的一些功能实现仍以调用库函数程序""中的函数的形式给出,并假设该库函数中定义了树指针和结点类型分别为 tree 和 tnode,以及部分常用运算,例如构建树(森林)、以某种方式显示树和森林等
各运算的名称较为直观,因而易于理解
读者可自行设计自己的库函数,也可到作者的网站下载
说明 2:为便于数据的描述,和前面的实验一样,将测试数据结构列出,并以一个文件名的形式给出标注,例如测试数据名为的树,其具体结构形式参见附录实中验的树内列表容中的标有的树
第一题:将一棵树(或森林)转换为二叉树
实验测试数据基本要求:第一组数据:第二组数据:实验准备:用广义表来表示树的数据,保存到文件中,通过文件流来读入数据,并根据读入的数据来创建树第二题:求森林的高度
实验测试数据基本要求:第一组数据:第二组数据:第一组数据:第二组数据:实验准备:遍历每一棵树,寻找高度的最大值
可以设立一个私有成员来记录数的高度第三题:按层次方式遍历森林
实验测试数据基本要求:第一组数据:第二组数据:实验准备:先访问第一层结点,并将它放入队列中,并反复从队列中取结点,访问其孩子结点,直至访问到叶子结点
第四题:输出一个森林中每个结点的值及其对应的层次数
实验测试数据基本要求:第一组数据:第二组数据:实验准备:使用递归函数来访问森林,同时输出层次数及结点值,使用形参来传递当前层次数第五题: 输 出 一 个 森 林 的 广 义 表 形 式 , 如 下 图 中 的 森 林 的 输 出 为 :(a(b(c,d,e,f),g(h,i,j),k(l,m,n)),o(p(q)),r(s(t(u