1. 树的定义
树(Tree)是一种分层数据结构,由节点(Node)和边(Edge)组成,具有以下特点:
- 树中有一个特殊的节点,称为根节点(Root)。
- 除根节点外的每个节点都有且只有一个父节点(Parent),可以有零个或多个子节点(Child)。
- 树中的节点之间有且仅有一条路径相连。
2. 树的术语
- 根节点:树的顶层节点,没有父节点。
- 子节点:一个节点的直接下层节点。
- 父节点:一个节点的直接上层节点。
- 叶子节点:没有子节点的节点。
- 内部节点:至少有一个子节点的节点。
- 路径:从一个节点到另一个节点所经过的节点序列。
- 深度:从根节点到某一节点的路径长度。
- 高度:从某一节点到叶子节点的最长路径长度。
- 层次:节点的深度加1。
3. 树的类型
3.1 二叉树
每个节点最多有两个子节点的树,称为二叉树(Binary Tree)。
- 完全二叉树:除了最后一层,所有层的节点数都达到最大,并且最后一层的节点都在最左边。
- 满二叉树:所有层的节点数都达到最大。
- 平衡二叉树:左右子树的高度差不超过1的二叉树。
3.2 二叉搜索树
二叉搜索树(Binary Search Tree, BST)是一种特殊的二叉树,满足以下性质:
- 每个节点的左子树中的所有节点值都小于该节点值。
- 每个节点的右子树中的所有节点值都大于该节点值。
3.3 平衡树
- AVL树:一种自平衡二叉搜索树,任意节点的两个子树的高度差不超过1。
- 红黑树:一种自平衡二叉搜索树,通过节点着色和旋转操作来保持平衡。
3.4 B树和B+树
- B树:一种自平衡的多路搜索树,广泛应用于数据库和文件系统中。
- B+树:B树的变种,其中叶子节点链表连接,便于范围查询。 <