1、数据结构二叉树实验报告一、实验目的和要求(1)掌握树的相关概念,包括树、节点的度、树的度、分支节点、叶子节点、孩子节点、双亲节点、树的深度、森林等定义。(2)掌握树的表示,包括树形表示法、文氏图表示法、凹入表示法和括号表示法等。(3)掌握二叉树的概念,包括二叉树、满二叉树和完全二叉树的定义。(4)掌握二叉树的性质。(5)重点掌握二叉树的存储结构,包括二叉树顺序存储结构和链式存储结构。(6)重点掌握二叉树的基本运算和各种遍历算法的实现。(7)掌握线索二叉树的概念和相关算法的实现。(8)掌握哈夫曼树的定义、哈夫曼树的构造过程和哈夫曼编码的产生方法。(9)掌握并查集的相关概念和算法。(10)灵活运用
2、二叉树这种数据结构解决一些综合应用问题。二、实验内容注:二叉树b为如图7-123所示的一棵二叉树实验7.1 编写一个程序algo7-1.cpp,实现二叉树的各种运算,并在此基础上设计一个程序exp7-1.cpp完成如下功能:(1)输出二叉树b;(2)输出H节点的左、右孩子节点值;(3)输出二叉树b的深度;(4)输出二叉树b的宽度;(5)输出二叉树b的节点个数;(6)输出二叉树b的叶子节点个数。实验7.2 设计一个程序exp7-2.cpp,实现二叉树的先序遍历、中序遍历和后序遍历和非递归算法,以及层次变量里的算法。并对图7-123所示的二叉树b给出求解结果。实验7.3 对如图7-123所示的二叉树,设计一个程序exp7-3.cpp,完成如下功能:(1)输出所有的叶子节点;(2)输出所有从叶子节点到根节点的路径;(3)输出(2)中的第一条最长的路径。三、实验过程描述实现二叉树的各种的基础程序algo7-1.cpp如下:实验7.1程序exp7-1.cpp如下:程序执行结果如下:实验7.2程序exp7-2.cpp设计如下:程序执行结果如下:实验7.3程序exp7-3.cpp设计如下:程序执行结果如下: