首页/数据结构/绪论/数据的逻辑结构 🔗 在 Obsidian 中打开
数据结构 · 绪论

数据的逻辑结构

难度 ★★重要度 ★★★★ 考查频率 高题型 选择 / 概念辨析 集合线性树形图形
速查
逻辑结构是数据元素之间的逻辑关系("什么和什么相邻"),与存储无关。按关系复杂度分四大类集合 / 线性 / 树形 / 图形。线性⊂树形⊂图形(后者是前者的推广)。

概述

逻辑结构是面向问题的抽象描述,描述数据元素之间的逻辑关系(即"什么和什么相邻"),不涉及数据在计算机中如何存储。

按数据元素之间关系的复杂程度,分为四类:

  1. 集合结构:元素间无特定关系,仅"属于同一集合"。
  2. 线性结构:元素间一对一,除首尾外每个元素有且仅有一个前驱和一个后继。
  3. 树形结构:元素间一对多的层次关系,除根外每个元素有且仅有一个前驱。
  4. 图形结构(网状):元素间多对多,每个元素可有多个前驱和后继。

核心概念

逻辑结构描述的是"关系"而非"存储方式"。例如栈和队列,尽管操作受限(LIFO/FIFO),但元素间的逻辑关系仍是一对一的线性关系;二叉树是树形结构;社交网络、路网是图形结构。

包含关系线性结构是树形结构的特例,树形结构是图形结构的特例,即 线性 $\subset$ 树形 $\subset$ 图形。

关键性质

结构类型元素关系前驱个数后继个数典型示例
集合无关系散列存储的元素
线性一对一$\leq 1$$\leq 1$线性表、栈、队列
树形一对多$=1$(根无)$\geq 0$二叉树、B 树
图形多对多$\geq 0$$\geq 0$社交网络、路网

常见考法

命题套路判断给定数据属于哪种逻辑结构;辨析"逻辑结构 vs 物理结构";说明同一逻辑结构可有多种存储实现。
考法解题套路
判断结构类型无关系→集合,一对一→线性,一对多→树形,多对多→图形
逻辑 vs 存储逻辑=关系抽象;存储=内存实际布局
选择题辨析"顺序表"是存储结构,"线性表"是逻辑结构

易错点

必记
  1. 逻辑 $\neq$ 存储:"顺序表"是存储结构,"线性表"是逻辑结构。
  2. 栈和队列是线性结构:操作受限不改变一对一的逻辑关系。
  3. 集合不是"没有数据":仍有元素,只是元素间无明确关系。
  4. 二叉树是树形结构:即使只有两个子节点,关系仍是一对多。

核心结论

  1. 逻辑结构的分类取决于元素之间关系的性质,与元素数量无关。
  2. 线性 $\subset$ 树形 $\subset$ 图形,存在包含关系。
  3. 同一逻辑结构可以对应多种存储结构(如线性表可用顺序表或链表)。
  4. 逻辑结构是后续算法设计的基础概念。

记忆卡片

逻辑结构四大类?
集合、线性、树形、图形。
线性结构最多几个前驱?
1 个。
树形结构根节点前驱?
0 个。
图形结构元素关系?
多对多。
栈/队列属于哪类?
线性结构(一对一)。
逻辑 vs 存储?
逻辑独立于存储,同一逻辑可多存储实现。

交互动画 · 四大逻辑结构逐步演示

集合 无关系 线性 一对一 树形 一对多 图形 多对多
集合线性树形图形
点击「播放」或「下一步」,依次认识四大逻辑结构
线性 ⊂ 树形 ⊂ 图形(关系约束逐级增强)

相关知识点

storage-structure-of-data abstract-data-type-adt

↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。