数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下。精心选择的数据结构能够带来更高的执行或者存储效率。


             数据结构-概述(1)_数据结构


数据的逻辑结构:指反映数据元素之间的逻辑关系的数据结构,当中的逻辑关系是指数据元素之间的前后件关系,而与他们在计算机中的存储位置无关。

 

通常有下列四类主要的结构:

⑴集合结构。该结构的数据元素间的关系是“属于同一个集合”。

⑵线性结构。该结构的数据元素之间存在着一对一的关系。

⑶树型结构。该结构的数据元素之间存在着一对多的关系。

⑷图形结构。该结构的数据元素之间存在着多对多的关系。也称网状结构。

从上面所介绍的数据结构的概念中能够知道,一个数据结构有两个要素。一个是数据元素的集合。还有一个是关系的集合。

对于线性结构。树型结构和图形结构的关系,如图:


        数据结构-概述(1)_存储单元_02


数据的存储结构(物理结构):

 

数据的存储结构是指数据的逻辑结构在计算机中的表示。有四种主要的存储映像方法:顺序、链接、索引、散列。

 

1.顺序存储

 

主要用于线性的数据结构。它把逻辑上相邻的结点存储在物理上相邻的存储单元里。结点之间的关系由存储单元的邻接关系体现。

如图:


        数据结构-概述(1)_数据_03


2.链式存储

 

就是给结点附加上指针字段。

即。将结点所占的存储单元分为两部分:

 

(1)数据项  存放结点本身的信息。

(2)指针项  存放此结点的后继结点所相应的存储单元的地址。

 

指针项能够包含一个或多个指针,以指向结点的一个或多个后继。或记录其它信息。

 

如图:


        数据结构-概述(1)_数据_04


顺序与链式对照:

 

1、比顺序存储结构的存储密度小(每一个节点都由数据域和指针域组成。所以同样空间内如果全存满的话顺序比链式存储很多其它)。

2、逻辑上相邻的节点物理上不必相邻。

3、插入、删除灵活(不必移动节点,仅仅要改变节点中的指针)。

4、查找结点时链式存储要比顺序存储慢。

5、每一个结点是由数据域和指针域组成。

 

 

3.索引存储

 

在线性结构中,结点能够排成一个序列:p1,p2,…。pn,每一个结点pi在序列里都有相应的位置I,这个位置数就能够作为结点的索引。

 

索引的存储结构:是用结点的索引號i来确定结点的存储地址。有2种实现方法:

 

(1)建立附加的索引表,索引表里第i项的值就是第i个结点的存储地址。

(2)当每一个结点所占单元个数都相等时。可用位置数的线性函数的值来指出结点相应的存储地址,即第i个结点pi的地址是LOC(pi)=(i-1)*p+q。当中。p为结点所占的单元个数,q为開始结点p1相应的存储地址。

 

 

4.散列存储

 

散列存储。又称hash存储。是一种力图将数据元素的存储位置与关键码之间建立确定相应关系的查找技术。散列法存储的基本思想是:由节点的关键码值决定节点的存储地址。散列技术除了能够用于查找外,还能够用于存储。

 

总结:

 

对于数据结构的逻辑结构和物理结构的简单解释:

逻辑结构:数据元素之间的逻辑关系,即人对数据的理解,而进行抽象的模型。

物理结构:数据元素在计算机中的存储方法。即计算机对数据的理解,逻辑结构在计算机语言中的映射。

 

以上所述仅仅是为了让大家对数据结构这个概念有一个全局的认识,便于我们对知识的理解。这样我们就不须要记忆知识。而是利用简单的结点去扩展整个知识网络!