C++数据结构————二叉树
【前言】
在数据结构与算法的世界里,二叉树(Binary Tree)始终占据着核心地位。它既是众多高级树形结构(B+树、红黑树、线段树、字典树……)的“基因”,又是面试、竞赛与工程实战中绕不开的考点。本文将用大约 2 万字的篇幅,从“零”开始,把 C++ 二叉树的所有常见形态、常见算法、常见坑点与常见优化一次性讲透。全文配套可编译运行的 C++17/20 代码 2000 余行,所有示例均在 GCC 13 / Clang 17 / MSVC 19.38 上通过 -std=c++20 -Wall -Wextra -pedantic -fsanitize=address,undefined
测试。
目录
- 二叉树的基本概念与分类
- 二叉树的 C++ 建模:节点、内存、RAII
- 基础遍历:递归、迭代、Morris、线索化
- 深度优先与广度优先:DFS/BFS 框架
- 二叉搜索树(BST):插入、删除、查找、迭代器
- 平衡树:AVL、红黑树(自实现 + STL map 剖析)
- 完全二叉树与堆:BinaryHeap / PriorityQueue
- 线索二叉树与 Morris 遍历
- 序列化与反序列化:前序+空指针、层序+JSON
- 最近公共祖先(LCA)、路径和问题
- 二叉树与动态规划:树形 DP 模板
- 多线程环境下二叉树的并发读写
- 自定义内存池与 Cache-friendly 优化
- 实战:表达式树、文件系统 diff、线段树、赫夫曼树
- 编译