1、树的基本概念总结
1.树是n(n≥0)个节点的有限集合。
2.n=0 时称为空树。
3.非空树满足:
有且仅有一个根节点(Root)。
其余节点可分成 m 个互不相交的子集合,每个子集本身也是一棵树,称为子树。
2. 基本术语
根节点:最顶层节点,没有父节点。
叶子节点:没有子节点的节点。
父节点 / 子节点:直接相连的上下级节点。
兄弟节点:同一个父节点的子节点。
祖先 / 后代:从根到某节点路径上所有节点为祖先;某节点子树中所有节点为后代。
节点的度:节点拥有的子树个数。
树的度:树中所有节点的度的最大值。
层数(深度):根节点在第 1 层(或第 0 层,看教材),子节点层数 = 父节点层数 + 1。
树的高度(深度):树中节点的最大层数。
森林:m(m≥0)棵互不相交的树的集合。
3. 有序树 vs 无序树
有序树:子节点从左到右顺序有意义,不能互换。
无序树:子节点顺序无关。
4. 二叉树(最常用)
每个节点最多有两个子节点,分别称为左孩子、右孩子。
是有序树,左右子树不能互换。
二叉树的重要性质
第 i 层最多有 2^(i-1) 个节点。
深度为 k 的二叉树最多有 2^k − 1 个节点。
叶子节点数 n₀ = 度为 2 的节点数 n₂ + 1。
特殊二叉树
满二叉树:每一层节点都满,深度 k 有 2^k−1 个节点。
完全二叉树:除最后一层外都满,最后一层节点靠左排列。
二叉排序树(BST):左 < 根 < 右,便于查找。
平衡二叉树(AVL):左右子树高度差不超过 1。
哈夫曼树:带权路径长度最短的二叉树,用于编码。
5. 树的存储结构
顺序存储:数组,适合完全二叉树。
链式存储:二叉链表
6. 遍历方式(二叉树)
先序遍历:根 → 左 → 右
中序遍历:左 → 根 → 右
后序遍历:左 → 右 → 根
层序遍历:从上到下、从左到右(用队列实现)