二叉树:概念、性质与应用
1. 二叉树的定义
1.1 递归定义
二叉树要么是空集,要么是一个三元组 (T = (x, L, R)),其中 (x) 是一个节点,(L) 和 (R) 是不相交的二叉树,且都不包含 (x)。节点 (x) 被称为树 (T) 的根,子树 (L) 和 (R) 分别称为以 (x) 为根的左子树和右子树。
1.2 非递归定义
二叉树是一种有序树,其中每个内部节点的度为 2。在这个更简单的定义中,叶节点被视为虚拟节点,其唯一目的是定义树的结构。在实际应用中,内部节点保存数据,而叶节点可以是相同的空节点、单个空节点或空引用。
1.3 示例
图 11.3 展示了一个大小为 10、高度为 3 的二叉树。节点 (a) 是其根,从节点 (h) 到节点 (b) 的路径长度为 2。节点 (b) 在第 1 层,节点 (h) 在第 3 层,(b) 是 (h) 的祖先,(h) 是 (b) 的后代。阴影区域部分是一个大小为 6、高度为 2 的子树,其根是节点 (b)。
2. 二叉树的计数
2.1 不同大小的二叉树数量
- 大小为 3 的二叉树 :有 5 种不同的二叉树,其中 4 种高度为 2,1 种高度为 1。
- 大小为 4 的二叉树 :有 14 种不同的二叉树,其中 10 种高度为 3,4 种高度为 2。
- 大小为 5 的二叉树 :通过递归定义计算,共有 42 种不同的二叉树。具体计