基本概念题: 7-1什么叫有序树?什么叫无序树?一棵度为2的树和一棵二叉树的区别是什么? 7-2什么叫满二叉树?什么叫完全二叉树?举出一个满二叉树和一个完全二叉树的例 子 7-3说出具有3个结点的树和具有3个结点的二叉树的所有不同形态的个数,并分别画 出他们的形态。 7-4给出图7-20所示二叉树的先序遍历、中序遍历、后序遍历和层序遍历得到的结点序 列 图7-20二叉树 7-5简叙线索二叉树的用途和中序线索二叉树的构造方法。 7-6画出图7-20(a)所示二叉树的前序线索二叉树、中序线索二叉树和后序线索二叉 7-7在一棵二叉树中,什么叫从A结点到B结点的路径?什么叫从A结点到B结点的 路径长度?什么叫二叉树的路径长度? 7-8在一棵叶结点带权的二叉树中,什么叫二叉树的带权路径长度?什么叫哈夫曼树? 哈夫曼树有什么用途? 7-9研究树和二叉树相互之间转换方法的意义是什么? 7-10画出图721所示树的先根遍历和后根遍历得到的结点序列。 图7-21树 7-11把图7-21所示树转换为二叉树。给出该二叉树的先序遍历、中序遍历和后序遍历 结果,并对比分析此遍历结果和习题7-10得出的树的先根遍历和后根遍历结果 7-12把图720所示二叉树转换为树。 复杂概念题:: 7-13画出和下列已知结点序列对应的二叉树:1)该二叉树的中序遍历结点访问序列为 DCBGEAHFIJK;2)该二叉树的后序遍历结点访问序列为 DCEGBFHKJIA 7-14高度为h的完全二叉树中,最多有多少个结点?最少有多少个结点? 7-15设二叉树中所有非叶子结点均有非空左右子二叉树,并且叶子结点数目为n,问:
基本概念题: 7-1 什么叫有序树?什么叫无序树?一棵度为 2 的树和一棵二叉树的区别是什么? 7-2 什么叫满二叉树?什么叫完全二叉树?举出一个满二叉树和一个完全二叉树的例 子。 7-3 说出具有 3 个结点的树和具有 3 个结点的二叉树的所有不同形态的个数,并分别画 出他们的形态。 7-4 给出图 7-20 所示二叉树的先序遍历、中序遍历、后序遍历和层序遍历得到的结点序 列。 A B C F D E G H A B D G C E F (a) (b) H 图 7-20 二叉树 7-5 简叙线索二叉树的用途和中序线索二叉树的构造方法。 7-6 画出图 7-20(a)所示二叉树的前序线索二叉树、中序线索二叉树和后序线索二叉 树。 7-7 在一棵二叉树中,什么叫从 A 结点到 B 结点的路径?什么叫从 A 结点到 B 结点的 路径长度?什么叫二叉树的路径长度? 7-8 在一棵叶结点带权的二叉树中,什么叫二叉树的带权路径长度?什么叫哈夫曼树? 哈夫曼树有什么用途? 7-9 研究树和二叉树相互之间转换方法的意义是什么? 7-10 画出图 7-21 所示树的先根遍历和后根遍历得到的结点序列。 A B C D E F G H I J K 图 7-21 树 7-11 把图 7-21 所示树转换为二叉树。给出该二叉树的先序遍历、中序遍历和后序遍历 结果,并对比分析此遍历结果和习题 7-10 得出的树的先根遍历和后根遍历结果。 7-12 把图 7-20 所示二叉树转换为树。 复杂概念题:: 7-13 画出和下列已知结点序列对应的二叉树:1)该二叉树的中序遍历结点访问序列为 DCBGEAHFIJK;2)该二叉树的后序遍历结点访问序列为 DCEGBFHKJIA。 7-14 高度为 h 的完全二叉树中,最多有多少个结点?最少有多少个结点? 7-15 设二叉树中所有非叶子结点均有非空左右子二叉树,并且叶子结点数目为 n,问:
该二叉树中共有多少个结点? 7-16假设用于通讯的电文仅由5个字母{AB,C,D,E}组成,字母在电文中出现的次数 分别为2,4,5,7,8。试为这5个字母设计哈夫曼编码。 7-17若一棵树有m个度为1的结点,有m2个度为2的结点,,有mk个度为k的 结点,问:树中共有多少个叶结点? 7-18证明:若哈夫曼树中有n个叶结点则该哈夫曼树中共有2n-1个结点。 *7-19证明:如果给出了遍历二叉树的前序序列和中序序列则可构造出唯一的一棵二叉 树 算法设计题: 7-20编写求二叉树中叶结点个数的函数(提示:这是一个遍历问题) 7-21编写判断一棵二叉树是否是完全二叉树的函数(提示:这是一个遍历问题) *7-22编写求二叉树高度的函数(提示:这是一个遍历问题)。 上机实习题: 7-23以例7-3为例,编写一个程序,首先建立如图7-20(a)所示不带头结点的二叉树, 然后中序线索化该二叉树,最后用循环结构输出该中序线索化二叉树各结点的序列信息 7-24哈夫曼编码的程序设计。要进行哈夫曼编码的字符集为{AB,C,D},各字符在电 文中出现的次数集为{1,3,5,7}。要求: (1)编写实现哈夫曼树构造和哈夫曼编码的函数。 (2)给出程序运行结果。 3)画出类似图7-17的哈夫曼树构造过程
该二叉树中共有多少个结点? 7-16 假设用于通讯的电文仅由 5 个字母{A, B, C, D, E}组成,字母在电文中出现的次数 分别为 2,4,5,7,8。试为这 5 个字母设计哈夫曼编码。 7-17 若一棵树有 m1 个度为 1 的结点,有 m2 个度为 2 的结点,……,有 mk 个度为 k 的 结点,问:树中共有多少个叶结点? 7-18 证明:若哈夫曼树中有 n 个叶结点则该哈夫曼树中共有 2n-1 个结点。 *7-19 证明:如果给出了遍历二叉树的前序序列和中序序列则可构造出唯一的一棵二叉 树。 算法设计题: 7-20 编写求二叉树中叶结点个数的函数(提示:这是一个遍历问题)。 7-21 编写判断一棵二叉树是否是完全二叉树的函数(提示:这是一个遍历问题)。 *7-22 编写求二叉树高度的函数(提示:这是一个遍历问题)。 上机实习题: 7-23 以例 7-3 为例,编写一个程序,首先建立如图 7-20(a)所示不带头结点的二叉树, 然后中序线索化该二叉树,最后用循环结构输出该中序线索化二叉树各结点的序列信息。 7-24 哈夫曼编码的程序设计。要进行哈夫曼编码的字符集为{A, B, C, D},各字符在电 文中出现的次数集为{1, 3, 5, 7}。要求: (1)编写实现哈夫曼树构造和哈夫曼编码的函数。 (2)给出程序运行结果。 (3)画出类似图 7-17 的 哈夫曼树构造过程