树与二叉树

树与二叉树 完整知识点大纲

一、基本概念(选择/填空必考,基础铺垫)

1. 树的基本定义与术语

  1. 树、子树、空树的定义
  2. 节点分类:根节点、叶子节点(终端节点)、分支节点(非终端节点)
  3. 节点关系:双亲、孩子、兄弟、祖先、子孙
  4. 节点属性:(节点的子树个数)、树的度(所有节点度的最大值)
  5. 层次、深度(高度)、层数、森林定义
  6. 树的性质(节点数、度数、层数相关公式,计算题高频)

2. 二叉树基础定义

  1. 二叉树概念:每个节点最多2棵子树,有左右之分,次序不能颠倒(核心区别于普通树)
  2. 两类特殊二叉树
    • 满二叉树:每层节点数达到最大值
    • 完全二叉树:除最后一层外其余层满,最后一层节点靠左排列
  3. 二叉树5种基本形态

3. 二叉树核心性质(计算题高频,必背)

  1. \(i\)层最大节点数
  2. 高度为\(h\)的二叉树最大节点数
  3. 任意二叉树:叶子节点数 = 度为2的节点数 + 1(超级高频公式
  4. 完全二叉树性质:节点编号规律、根据总节点数判断叶子/分支节点范围、高度计算
  5. 完全二叉树下标与节点双亲/孩子的对应关系(顺序存储考点)

二、存储结构(选择、代码、应用题,两者均重点)

1. 顺序存储

  1. 适用场景:完全二叉树、满二叉树(普通二叉树空间利用率极低)
  2. 存储规则:按层序依次存入数组,利用下标映射父子关系
  3. 优缺点分析

2. 链式存储(主流,代码题核心)

  1. 二叉链表(最常用):数据域 + 左孩子指针 + 右孩子指针
  2. 三叉链表:增加双亲指针(适合需要向上遍历的场景)
  3. 节点结构体定义(手写代码必考)
  4. 链式存储优缺点

3. 普通树、森林的存储(802常考,408低频)

  1. 双亲表示法
  2. 孩子表示法
  3. 孩子兄弟表示法(树转二叉树的基础,重点)

三、遍历操作(重中之重!选择+大题+代码,必考模块)

1. 二叉树遍历(核心中的核心)

(1)四大遍历方式

  • 先序遍历(根 → 左 → 右)
  • 中序遍历(左 → 根 → 右)
  • 后序遍历(左 → 右 → 根)
  • 层序遍历(按层次从上到下、从左到右)

(2)两类实现方式

  1. 递归实现(理解为主,代码简单)
  2. 非递归实现(栈模拟,408/808高频代码题、手写步骤题)
    • 先/中/后序:栈的入栈、出栈规则
    • 层序遍历:队列实现(必考)

(3)经典应用题(高频大题)

  1. 给定两种遍历序列,还原二叉树
    • 先序+中序 → 唯一确定二叉树
    • 后序+中序 → 唯一确定二叉树
    • 先序+后序 → 无法唯一确定(考点判断)
  2. 根据遍历序列,求另外一种遍历结果
  3. 遍历过程手工模拟(画图题)

2. 树、森林的遍历

  1. 树的遍历:先根遍历、后根遍历
  2. 森林的遍历:先序遍历、中序遍历
  3. 映射关系:树/森林的遍历 等价于 对应二叉树的遍历(考点)

四、树、森林 与 二叉树的相互转换(画图题高频)

  1. 普通树 → 二叉树(孩子兄弟表示法规则,固定步骤)
  2. 森林 → 二叉树:每棵树转二叉树 + 根节点依次作为右孩子拼接
  3. 二叉树 → 普通树
  4. 二叉树 → 森林
  5. 转换规则、画图步骤、性质总结(选择常考)

五、特殊二叉树(分模块标注考频)

(一)二叉搜索树 BST(408+802 均高频,选择+大题+代码)

  1. 定义:左子树所有节点值 < 根节点值 < 右子树所有节点值,左右子树也满足规则
  2. 核心性质:二叉搜索树的中序遍历为递增有序序列(必考结论)
  3. 基本操作(代码/应用题重点)
    • 查找节点(递归+非递归)
    • 插入节点
    • 删除节点(分三种情况:删叶子、删单分支节点、删双分支节点,难点)
  4. 查找效率分析:最好/最坏/平均时间复杂度、形态对效率的影响

(二)平衡二叉树 AVL树(408重点,重邮802仅基础概念,不考复杂旋转)

  1. 平衡因子定义:左子树高度 - 右子树高度,取值范围 {-1,0,1}
  2. AVL树定义:左右子树高度差不超过1,且左右子树都是AVL树
  3. 四种失衡情况与旋转(408必考大题)
    • LL型:右单旋转
    • RR型:左单旋转
    • LR型:先左后右双旋转
    • RL型:先右后左双旋转
  4. AVL树插入节点、判断平衡、手工模拟旋转
  5. 查找效率分析

(三)哈夫曼树(最优二叉树)(两者必考,计算题+画图题)

  1. 基本概念:路径、路径长度、带权路径长度 WPL(核心)
  2. 哈夫曼树定义、构造规则(必考画图步骤
  3. 哈夫曼树性质(必背)
    • 没有度为1的节点
    • 节点总数、叶子节点数、分支节点数的数量关系
  4. 哈夫曼编码(应用考点)
    • 前缀编码定义
    • 根据哈夫曼树编制编码
    • 最短前缀编码原理
  5. WPL 计算(计算题高频)

(四)拓展结构(区分考纲)

  1. B树 / B+树:408 重点(查找模块联动),重邮802基本不考
  2. 红黑树:408仅考概念、性质,不考复杂操作;802完全不考

六、经典算法与应用(代码题综合考点)

1. 基础算法(遍历衍生,高频手写代码)

  1. 统计二叉树节点总数、叶子节点数、度为1/度为2的节点数
  2. 求二叉树的高度/深度
  3. 二叉树的拷贝、销毁
  4. 判断两棵二叉树是否相等
  5. 二叉树的镜像(左右子树交换)

2. 进阶应用

  1. 由数组/序列构建二叉树
  2. 寻找指定节点的双亲、孩子、层次
  3. 路径问题:根到指定叶子节点的所有路径(408算法题高频)
  4. 表达式二叉树(中缀表达式转二叉树,遍历对应表达式)

七、考点区分:重邮802 VS 408 差异化要求

✅ 两者共同核心(100%必须掌握)

  1. 基本概念、所有二叉树性质、计算公式
  2. 顺序+链式存储结构、节点定义
  3. 四大遍历(递归+非递归)、遍历序列还原二叉树
  4. 树/森林 ↔ 二叉树 相互转换
  5. 二叉搜索树(增删查)、哈夫曼树(构造+WPL+编码)

📌 仅408需要深入学习(802了解概念即可)

  1. AVL树四种旋转、失衡判断
  2. B树、B+树结构与基本操作
  3. 红黑树基本性质
  4. 复杂路径类算法、综合型代码题

📌 重邮802特色考点(408考得少)

  1. 普通树的三种存储结构(双亲/孩子/孩子兄弟)
  2. 广义表与树的关联(少量小题)
  3. 侧重基础代码、简单手工模拟,极少考复杂平衡树旋转

八、复习优先级(按出题频率排序)

  1. 二叉树性质 + 遍历(递归/非递归/序列还原)→ 最高优先级
  2. 哈夫曼树(构造、WPL、编码)
  3. 二叉搜索树(定义、增删查、中序有序性质)
  4. 树/森林与二叉树转换
  5. 存储结构 + 基础衍生算法(求高度、节点数、镜像等)
  6. AVL树(408深挖旋转,802仅概念)
  7. B树/B+树、红黑树(仅408)
  8. 树的多种存储方式(802重点)
posted @ 2026-05-26 22:24  kitic  阅读(11)  评论(0)    收藏  举报