首页 > 编程知识 正文

数据结构分为逻辑结构与存储结构,简述数据结构的逻辑结构和存储结构的区别

时间:2023-05-05 13:06:53 阅读:225351 作者:4877

数据结构的形式定义: 数据结构是一个二元组Data_Structures=(D, S),其中,D是数据元素的有限集,S是D上关系的有限集。
说明: 数据结构的定义只说明了数据结构的一个方面,强调的是数据元素之间的逻辑关系。由于数据结构是计算机操作的对象,因此它还有另外一个很重要的方面,就是数据的存储结构,即怎么在计算机中表示出数据的逻辑结构。

数据的逻辑结构: 即数据元素之间的关系,分为4类:

1.线性结构

实质上是一个序列。

2.树形结构

像一个树,一个根可以开展出多个分支。

3.图状结构

4.集合结构

这里集合的概念与数学中集合的概念是相同的。集合结构中数据元素之间不存在任何关系,但是从某种意义上来说,也是一种关系。

数据的存储结构: 逻辑结构在存储器中的映像,或者说,逻辑结构在计算机中的表示。
要想实现逻辑结构在计算机中的表示,应该从数据结构的定义考虑,分别考虑 数据元素的映像方法 和关系的映像方法 。
【数据元素的映像方法】
用二进制位(bit)的位串来表示数据元素。
比如: (321)10可以用(101000001)2来表示,A可以用(001000001)2来表示。当然,在这里用的是ASCII码。
【关系的映像方法】
所有的关系都可以用一个有序对<x, y>来表示,所以,可以把这个有序对<x, y>看作是关系的基本单位。关系的映像方法就是表示有序对<x, y>的方法。
有序对<x, y>在计算机中有2种表示方法:
1.顺序映像
以存储位置的相邻来表示后继关系,简单来说,对于有序对<x, y>,y的存储位置和x的存储位置差一个常量C(C为正,且C是一个隐含值)。
对于顺序映像,整个数据结构只含数据元素本身的信息,没有其他附加的信息。
比如:
对于线性结构(a1, a2, a3),其存储结构如下:

2.链式映像(非顺序映像)
在整个结构中,有序对<x, y>中x和y的存储位置之间没有固定的关系,即它们的存储位置是随意的,这时x和y的后继关系就需要用一个附加信息(指针)来表示。
这个附加信息需要与x绑定在一起,换句话说,这个数据元素x的存储映像是一个节点,这个节点包含两部分信息:一部分信息是数据元素x的映像,另一部分信息是指向后继元素的指针。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。