逻辑结构与物理结构

按照视点的不同,我们把数据结构分为逻辑结构和物理结构。

逻辑结构

逻辑结构是指数据对象中数据元素之间的相互关系。逻辑结构分为以下四种

集合结构---集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关系。各个数据元素是“平等”的,它们共同属性是“属于一个集合”。如图:

123600_9CXx_168814.jpg

线性结构---线性结构中的数据元素之间是一对一的关系,如图:

123909_B6aI_168814.jpg

树形结构---树形结构中的数据元素之间存在一种一对多的层次关系 ,如图:

124125_Nktg_168814.jpg

图形结构---图形结构的数据元素是多对多的关系,如图:

124315_iWDP_168814.jpg

 

 我们在用示意图表示数据的逻辑结构时,要注意两点:1.将每一个数据元素看做一个结点,用圆圈表示。2.元素之间的逻辑关系用结点之间的连线表示,如果这个关系是有方向的,那么用带箭头的连线表示。

物理结构

说完了逻辑结构,我们再来说说数据的物理结构(很多书中也叫存储结构)。物理结构是指数据的逻辑结构在计算机中的存储形式。数据是数据元素的集合,那么根据物理结构的定义,实际上就是如何把数据元素存储到计算机的存储器中。数据的存储结构应正确反映数据元素之间的逻辑关系,这才是最为关键的。数据元素的存储结构形式有两种顺序存储链式存储

顺序存储结构---顺序存储结构是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。如图:

130822_b02J_168814.jpg

这种存储结构其实很简单,说白了,就是排队占位。大家都按顺序排好,每个人占一小段空间,大家谁也别插谁的队。我们之前学计算机语言时,数组就是这样的顺序结构。

排队如果就是这么简单和有规律,一切主好办了。可实际上,总会有人插队,也会有人要上厕所、有人会放弃排队。所以这个队伍当中会添加新成员,也有可能会去掉老元素,整个结构时刻都处于变化中。显然,面对这样时常要变化的结构,顺序存储是不科学的,那怎么办呢?现在如银行、医院等地方,设置了排队系统,也就是每个人去了,先领一个号,等着叫号,叫到时去办理业务或看病。在等待的时候,你爱在哪在哪。链式存储结构是把数据元素存放在任意存储单元里,这组存储单元可以是连续的,也可以是不连续的。数据元素的存储关系并不能反映其逻辑关系,因此需要用一个指针存储数据元素的地址,这样通过地址就可以找到相关联数据元素的位置,如图:

131929_pQEO_168814.jpg

显然,链式存储就灵活多了,数据存在哪里不重要,只要有一个指针存放了相应的地址就能找到它了。

逻辑结构是面向问题的,而物理结构就是面向计算机的,其基本的目标就是将数据及其逻辑关系存储到计算机的内存中。

总结图:

221726_NJvx_168814.png

转载于:https://my.oschina.net/fhd/blog/205649

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值