一,顺序存储方式
1,线性表:同一类型的数据元素组成的有限序列。
2,线性表的顺序存储方式(即顺序表):各个元素存储在连续的地址上。已知一个元素地址后,可以确定任一元素的地址。在程序设计语言中通常用一维数组表示。
3,相关算法:
插入元素,删除元素,定位元素,需要平均移动元素n/2次,时间复杂度O(n)。
随机读取和修改元素可直接操作,无时间复杂度。
4,优点:没有关系指针,因此比较节省存储空间;随机存取元素速度快。
缺点:插入,删除速度慢;存储空间只能预先静态分配,不能动态扩展。
二,链式存储方式。
1,链表:逻辑上相邻的元素,物理上不要求相邻。分为单向链表,双向链表,循环链表。
2,组成:节点组成,每个节点含数据域和指针域。为了方便,通常引入头节点。
3,算法:获取元素,增加元素,删除元素的时间复杂度为O(n).
4,双向链表和单向链表基本操作的实现类似,只是注意调节指针指向的区别。
5,优点:可以动态分配存储空间。
缺点:需要额外存储空间存放指针;随机存取慢,插入和删除也不快。
三,数组
1,数组是一种线性表。支持高效随机存取。
2,二维数组在计算机中主要有行序和列序存储形式。常用行序。
四,特殊矩阵的压缩存储。