数据结构中有哪些存储结构
数据结构中主要有四种存储结构:1.线性表存储结构;2.顺序存储结构;3.链式存储结构;4.栈和队列存储结构;5.树形存储结构;6.图型存储结构。线性表存储结构其实不是一种具体的存储结构,而是顺序表和链表的统称,包含顺序存储结构和链式存储结构。
1.线性表存储结构
线性表结构存储的数据往往是可以依次排列的,就像小朋友手拉手,每位学生的前面和后面都仅有一个小朋友和他拉手,具备这种“一对一”关系的数据就可以使用线性表来存储。但是,线性表存储结构本质上不是一种具体的存储结构,它包含顺序存储结构和链式存储结构。
2.顺序存储结构
顺序表,简单地理解就是常用的数组,只是换了个名字而已。由于顺序表结构的底层实现借助的就是数组,因此对于初学者来说,可以把顺序表完全等价为数组,但实则不是这样。数据结构是研究数据存储方式的一门学科,它囊括的都是各种存储结构,而数组只是各种编程语言中的基本数据类型,并不属于数据结构的范畴。
3.链式存储结构
所谓链式存储结构,一般就是用一个头指针指向链表的名列前茅个节点,如果你要增加新的存储元素时,只需在已有节点的后面插入新结点即可。使用链表存储数据时,是随用随申请,因此数据的存储位置是相互分离的,换句话说:数据的存储位置是随机的。
4.栈和队列存储结构
栈和队列隶属于线性表,是特殊的线性表,因为它们对线性表中元素的进出做了明确的要求。
栈中的元素只能从线性表的一端进出(另一端封死),且要遵循“先入后出”的原则,即先进栈的元素后出栈。
而队列存储结构中的元素只能从线性表的一端进,从另一端出,且要遵循“先入先出”的特点,即先进队列的元素也要先出队列。
5.树形存储结构
所谓树形存储结构,就是数据元素与元素之间存在着一对多关系的数据结构。在树形存储结构中,树的根节点没有前驱结点,其余的每个节点有且只有一个前驱结点,除叶子结点没有后续节点外,其他节点的后续节点可以有一个或者多个。
6.图型存储结构
图存储结构适合存储具有“多对多”关系的数据。所谓图形结构,就是数据元素与元素之间的关系是任意的,任意两个元素之间均可相关,即每个节点可能有多个前驱结点和多个后继结点,因此图形结构的存储一般是采用链接的方式。
延伸阅读
数据结构的有哪些存储方法
1.顺序存储方法
存储方法就是在一块连续的存储区域一个接着一个的存放数据。顺序存储方式把逻辑上相邻的节点存储在物理位置相邻的存储单元里,节点间的逻辑关系由存储单元的邻接关系来体现。顺序存储方式也称为顺序存储结构,一般采用数组或结构数组来描述。
2.链接存储方法
链接存储比较灵活,不要求逻辑上相邻的节点在物理位置上相邻,节点间的逻辑关系由附加的引用字段来表示。一个节点的引用字段往往指向下一个节点的存放位置。链接存储方式也成为链式存储结构。
3.索引存储方法
索引存储是采用附加的索引表的方式来存储节点信息的一种存储方法。索引表由若干索引项组成,若每个结点在索引表中都有一个索引项,则该索引表称之为稠密索引。若一组结点在索引表中只对应一个索引项,则该索引表称为稀疏索引。其中,索引项的一般形式为(关键字、地址),索引项的地址指示一组节点的起始存储位置。
4.散列存储方法
散列存储是根据节点的关键字直接计算出该节点的存储地址的一种存储方法。
上述四种基本存储方法,既可单独使用,也可组合起来对数据结构进行存储映像。同一逻辑结构采用不同的存储方法,可以得到不同的存储结构。

