📌 408 核心考点:数据结构“逻辑 vs 存储”秒杀笔记
一、 考场第一避坑卡:区分“逻辑”与“存储”
-
逻辑结构(只关心中间数据的关系,不关心怎么存):
只有 4 种标准答案:集合、线性结构(线性表/链表)、树形结构(树/二叉树)、图形结构(图/网)。
-
物理/存储结构(关心在内存里怎么放):
主要有 4 种:顺序存储(数组)、链式存储(指针链表)、索引存储、散列存储(哈希表)。
二、 逻辑结构(Logical Structure)考场对号入座
当题目问:“可抽象为哪种逻辑结构?”时,根据题干特征直接选:
| 题干关键特征 / 物理场景 | 考场标准逻辑结构答案 | 典型真题场景 |
|---|---|---|
| 一对一关系:排队、序列、1D 轨迹、时间先后顺序 | 线性结构(或 线性表) | 表达式求值、缓冲区排队、历史操作回滚 |
| 分支关系 / 层次结构:树状目录、前缀编码、嵌套语法、二分决策 | 树形结构(或 树 / 二叉树) | 2020 真题(前缀编码/Trie树)、文件系统目录、带权路径 |
| 多对多关系 / 复杂连通:网络拓扑、路由器连接、社交好友、交通网 | 图 / 图形结构(有向图 / 无向图) | 2014 真题(OSPF路由网)、2015 真题(邻接矩阵路径)、2021/2023 真题(网/度数判断) |
三、 数据结构/存储结构(Data Structure)考场特征映射
当题目问:“哪种数据结构适宜保存/实现……?”时,根据题干要求的数据处理特性选:
1. 看到“先进后出 / 递归 / 嵌套 / 回溯”
-
选:栈(Stack)
-
场景:括号匹配、函数调用栈、DFS(深度优先搜索)、表达式求值、撤销(Undo)功能。
2. 看到“先进先出 / 缓冲 / 队列 / 层次”
-
选:队列(Queue)
-
场景:BFS(广度优先搜索)、打印机任务缓冲、操作系统进程调度队列。
3. 看到“前缀 / 编码 / 01导航 / 树形决策”
-
选:二叉树 / 前缀树 / Trie 树 / 哈夫曼树
-
场景:不等长前缀编码(2020 真题)、哈夫曼压缩、二分查找树。
4. 看到“查找极快 / 关键字直接映射”
-
选:散列表 / 哈希表(Hash Table)
-
场景:快速查找某个元素是否存在、频繁的插入与查找操作。
5. 看到“频繁在中间插入/删除,且不需要随机访问”
-
选:单链表 / 双链表 / 循环链表
-
场景:带头结点的链表操作(2009 真题倒数第 k 个节点)。
6. 看到“多对多网络 / 链路状态 / 邻居节点”
-
选:邻接矩阵 / 邻接表
-
场景:
-
邻接矩阵:顶点少、边密集(密集的图),需要快速判断两点间是否有边。
-
邻接表:顶点多、边稀疏(稀疏的图,如 2014 真题路由器 LSI)。
-
四、 考场答题标准句式(直接抄)
在考场上回答“为什么选择该数据结构?”时,使用以下三段式提分句型:
-
逻辑提炼:该场景中的数据元素之间存在 [一对一 / 一对多 / 多对多] 的逻辑关系。
-
物理对应:[数据结构名称] 的 [特定节点/分支特性] 能够完美映射该业务关系。
-
性能优势:在此结构下,[查找 / 插入 / 遍历 / 译码] 操作的实现非常高效。