6.3 平衡树:AVL 与红黑树
**面试突击 · 平衡树。** 从 AVL 的四种旋转到红黑树的五条性质,手写 AVL 插入与删除,深入理解 STL 为什么选红黑树不选 AVL,以及 B/B+ 树在数据库中的角色。
6.4 堆与优先队列
**面试突击 · 堆。** 从完全二叉树的数组映射到 sift-up/sift-down 的完整实现,手写堆排序、手撕 Top-K 问题,深入 std::priority_queue 接口与索引堆,以及数据流中位数等高频面试题。
6.5 线段树 & 树状数组
**面试突击 · 线段树。** 区间查询与修改的利器——从线段树的递归实现到懒传播优化,从树状数组的 lowbit 技巧到逆序对计数,掌握区间问题的两大杀器。
6.6 实战场景:场景树、骨骼动画与行为树
**面试突击 · 树的游戏应用。** 场景树的 Transform 继承、骨骼动画的层级蒙皮、行为树 AI 决策、时间轮定时器、表达式 AST 求值——五大核心场景的完整 C++ 实现。
第四章 队列:先来后到的公平
**面试突击 · 队列。** 从 FIFO 到双端队列,剖析 std::deque 的分段连续内存,手撕滑动窗口最大值,深入游戏引擎中的事件系统、渲染命令缓冲与 A* 寻路的优先队列实战。
第五章 哈希表:空间换时间的极致
**面试突击 · 哈希表。** 从哈希函数设计到冲突解决策略,剖析 std::unordered_map 的桶数组底层与 rehash 机制,手撕两数之和与 LRU Cache,深入游戏引擎中的资源管理、Spatial Hashing 碰撞检测与配置表热加载实战。
第六章 树:层级世界的骨架
**面试突击 · 树(总览)。** 树是面试中考查最密集的数据结构。本章拆分为六个子章节:二叉树基础与遍历、二叉搜索树 BST、平衡树(AVL & 红黑树)、堆与优先队列、游戏引擎实战、线段树与树状数组,共计覆盖 45+ 道高频面试题。
第二章 链表:指针的艺术
**面试突击 · 链表。** 从单链表到侵入式链表,从快慢指针到 LRU Cache,深入 std::list 底层实现与游戏引擎中的内存管理实战。
第三章 栈:后进先出的秩序
**面试突击 · 栈。** 从函数调用栈到单调栈,剖析 std::stack 的适配器模式,手撕柱状图最大矩形,深入游戏引擎中的 UI 栈、状态机与 Undo/Redo 实战。