Skip to content
难度基础(★)
建议时长45分钟

13.1.1 线性结构知识点概述

线性结构是数据结构中最基础的一类。它的“线性”不是说数据一定排在连续内存里,而是说从逻辑关系上看,除第一个和最后一个元素外,每个元素都有唯一直接前驱和唯一直接后继。

线性结构学什么

课程把线性结构分成四类:线性表、栈、队列和串。其中栈与队列是考试重点,因为它们经常考操作规则和序列判断;串的考题频率不算最高,但一旦考模式匹配,难度往往偏大。

结构逻辑特征存储/操作重点考试关注
线性表元素一对一排列顺序表与链表两种存储查找、插入、删除代价对比
只允许在栈顶操作后进先出 LIFO出栈序列是否合法
队列队尾入、队头出先进先出 FIFO队列序列、循环队列条件
字符组成的有限序列子串、模式串、匹配BF/KMP 模式匹配

逻辑结构与存储结构要分开

很多初学者会把“线性表”和“数组”混在一起。严格说,线性表是逻辑结构,数组/顺序表/链表是存储方式。

mermaid
flowchart LR
  L["线性表:逻辑上一对一"] --> S["顺序存储:连续地址"]
  L --> C["链式存储:节点用指针连接"]
  S --> A["顺序表/数组"]
  C --> B["单链表/双链表/循环链表"]

同一个逻辑结构可以有不同的物理存储。选择存储方式时,本质是在查找速度、插入删除代价、空间利用率之间做权衡。

线性结构的共同操作

操作关注问题
读取第 i 个元素能否直接定位地址
查找某个值是否必须逐个比较
插入元素是否要移动后续元素,或只改指针
删除元素是否要找到前驱,是否要移动元素
遍历是否能从头到尾按逻辑顺序访问

线性结构为什么是高频基础

栈、队列、串、数组、链表不仅单独考,也会出现在树、图和算法题里。例如:

后续知识与线性结构的关系
二叉树遍历递归本质依赖调用栈;层序遍历依赖队列
图的 BFS需要队列保存待访问顶点
图的 DFS可用递归栈或显式栈
字符串算法建立在数组式顺序存储和下标移动上

本节例题

单选
线性结构中“线性”的主要含义是:

自查清单

  1. 能否区分逻辑结构和存储结构?
  2. 能否说明顺序表、链表、栈、队列、串之间的关系?
  3. 能否说出栈和队列为什么属于“操作受限的线性表”?