逻辑结构与存储结构

数组可以被当做存储结构来看待,对应存储结构中的顺序存储,其本身是为了实现顺序存储而产生的工具。并不是任何数据结构都只有两种存储结构,线性和链式只是整体的描述,还会根据具体情况分成多种存储结构。

逻辑结构分类

根据逻辑结构可以将数据结构分为以下大类:

  • 线性结构:表(顺序表、链表)、广义表、栈、队列
  • 树形结构:二叉树、二叉搜索树、堆
  • 图结构:有向图、无向图
  • 其他:哈希

每种结构都可以有两种基本的存储结构:

  • 顺序存储:用数组实现,数据元素在内存中连续存放
  • 链式存储:用指针实现,数据元素在内存中不连续存放,通过指针链接

例如,表可以分为顺序表和链表;图可以用邻接矩阵(顺序存储)或邻接表(链式存储)来表示。

常见考点总结

  • 广义表表示
  • 哈夫曼树:不唯一
  • 最小生成树:Prim 算法 / Kruskal 算法,边权和最小,不一定唯一,适用于无向连通图,无负权环
  • 拓扑排序:AOV 网,不一定唯一
  • 关键路径:AOE 网,最早开始时间、最迟开始时间,关键路径不一定唯一
  • 最短路径:Dijkstra(无负权边环,路径不唯一),Floyd(无负权环,路径不唯一,矩阵唯一)

链接到