📌 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)。

四、 考场答题标准句式(直接抄)

在考场上回答“为什么选择该数据结构?”时,使用以下三段式提分句型:

  1. 逻辑提炼:该场景中的数据元素之间存在 [一对一 / 一对多 / 多对多] 的逻辑关系。

  2. 物理对应[数据结构名称][特定节点/分支特性] 能够完美映射该业务关系。

  3. 性能优势:在此结构下,[查找 / 插入 / 遍历 / 译码] 操作的实现非常高效。