数据结构的大纲(outline)
思维导图
逻辑结构
线性结构:一般线性表;栈;队列;字符串;数组
集合:集合
树形结构:一般树;二叉树(特殊的树)
图形结构:有向图;无向图
物理结构
每一种逻辑结构,其实都可以用四种存储结构都来实现一遍,但是有的存储结构不太适合而已。
我认为,存储结构其实只有两种,一个是顺序存储,一个是链式存储。索引存储其实就是顺序存储+链式存储,哈希存储就是有不同hash函数的顺序存储或者链式存储。
我认为有几点理由可以支撑这种看法:
- 从计算机的硬件的结构上看,内存的基本单位是存储单元——是一串二进制的数字。每一次存取,都是取一个或多个存储单元。数据存储在内存上,要不是顺序存储,要不然就是分散开存储。
- 索引存储,可以用数据库的索引表来看,就是一张表(顺序存储),然后这个表的某一项指向某个数据(链式存储),这个形式上很像顺序和链式的结合。
应用场景
顺序存储和链式存储在所有场合都可以用到,就不多说了。
索引存储:
- 文件的存储,比如索引文件的存储就是用索引表,表中每一项指向一个磁盘块。
- 数据库。创建索引表来加快检索的速度。
哈希存储:
暂时不知道