二叉树:结构、分类与遍历全解析
二叉树是一种每个节点最多有两个子树(左子树和右子树)的树形结构,是数据结构中的基础且重要的模型。其简洁的层次关系和灵活的操作特性,使其广泛应用于索引、表达式解析、人工智能等领域。本文将从性质、分类、存储到遍历,全面解析二叉树。
二叉树的基本性质
二叉树的核心性质描述了节点数量、层数、深度之间的关系,是理解其结构的基础:
- 第 i 层节点数上限:
二叉树第i层(根节点为第 1 层)上的节点数目至多为2^(i-1)。- 例:第 3 层最多有
2^(3-1)=4个节点。
- 例:第 3 层最多有
- 深度为 k 的节点总数上限:
深度为k的二叉树至多有2^k - 1个节点(满二叉树的情况)。- 例:深度为 3 的满二叉树有
2^3 - 1 = 7个节点。
- 例:深度为 3 的满二叉树有
- 叶子节点与度为 2 的节点关系:
对任何二叉树,若叶子节点数为n₀,度为 2 的节点数为n₂,则n₀ = n₂ + 1。- 原理:总边数 = 总节点数 - 1,且总边数 = 度为 1 的节点数 + 2× 度为 2 的节点数,联立推导可得。
- 完全二叉树的深度:
具有n个节点的完全二叉树,深度为⌊log₂n⌋ + 1(⌊x⌋表示向下取整)。- 例:
n=7时,深度为⌊log₂7⌋ + 1 = 2 + 1 = 3。
- 例:
二叉树的分类
根据结构和特性,二叉树可分为以下几类:
普通二叉树
每个节点最多有 2 个子树(左子树和右子树),无其他约束。
二叉查找树(BST,Binary Search Tree)
核心特性: