数据结构的大纲(outline)

思维导图

数据结构整体的思维导图

逻辑结构

线性结构:一般线性表;栈;队列;字符串;数组

集合:集合

树形结构:一般树;二叉树(特殊的树)

图形结构:有向图;无向图

物理结构

每一种逻辑结构,其实都可以用四种存储结构都来实现一遍,但是有的存储结构不太适合而已。

我认为,存储结构其实只有两种,一个是顺序存储,一个是链式存储。索引存储其实就是顺序存储+链式存储,哈希存储就是有不同hash函数的顺序存储或者链式存储。

我认为有几点理由可以支撑这种看法:

  1. 从计算机的硬件的结构上看,内存的基本单位是存储单元——是一串二进制的数字。每一次存取,都是取一个或多个存储单元。数据存储在内存上,要不是顺序存储,要不然就是分散开存储。
  2. 索引存储,可以用数据库的索引表来看,就是一张表(顺序存储),然后这个表的某一项指向某个数据(链式存储),这个形式上很像顺序和链式的结合。

应用场景

顺序存储和链式存储在所有场合都可以用到,就不多说了。

索引存储:

  1. 文件的存储,比如索引文件的存储就是用索引表,表中每一项指向一个磁盘块。
  2. 数据库。创建索引表来加快检索的速度。

哈希存储:

暂时不知道