这个分类用于沉淀和数据结构相关的知识小课堂:数组、链表、栈、队列、堆、树、哈希表、图,以及它们在实际程序中的应用。

先建立总模型

数据结构不是容器名称表,而是“为了高效回答某类问题,持续维护什么不变量”。二叉堆不保证整体排序,只保证堆顶始终是当前最高优先级。

一组任务的处理顺序

任务优先级:A=40,B=10,C=30
普通 Queue:按进入顺序取出
最小堆:依次取出 B、C、A

阅读时始终跟踪三件事:数据怎样摆放、不变量是什么、一次修改怎样恢复不变量。

已收录

学习方式

每篇笔记尽量围绕一个真实代码片段展开:

  1. 它解决什么问题
  2. 它用了什么数据结构
  3. 数据结构的核心不变量是什么
  4. 入队、出队、查找、更新等操作如何发生
  5. 复杂度是多少
  6. 这个思维能迁移到哪些场景