来源:https://jingyan.baidu.com/article/fb48e8be0f14616e632e1479.html
1、逻辑结构:是指数据对象中数据元素之间的相互关系。逻辑结构分为以下四种:
①、集合结构:集合结构中的数据元素除了属于同一个集合外,它们之间没有其他关系。各个数据元素是“平等”的,它们的共同属性是“同属于同一个集合”。
②、线性结构:线性结构中的数据元素是一对一的关系。
③、树形结构:树形结构中的数据元素存在着一种一对多的层次关系。
④、图形结构:图形结构的数据元素是多对多的关系。
注意:在图形结构中,我们在表示数据的逻辑结构时,要注意以下两点:
a、将每一个数据元素看做一个结点,用圆圈表示。
b、元素之间的逻辑关系用结点之间的连线表示,如果这个关系是有方向的,用带箭头的连线表示。
2、物理结构(也叫存储结构):是指数据的逻辑结构在计算机中的存储形式。
解析:数据是数据元素的集合,那么根据物理结构的定义,实际上就是如何把数据元素存储到计算机中的存储器中。存储器主要是针对内存而言的,像硬盘、软盘、光盘等外部存储器的数据组织通常用文件结构来描述。
数据的存储结构应正确反映数据元素之间的逻辑关系,数据元素的存储结构形式有两种:顺序存储和链式存储。
(1)、顺序存储结构:是把数据元素放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。
解析:其实说白了这种存储结构很简单,就是排队占位。大家都按顺序呢排好,每个人占一段空间,大家谁也别插谁的队。我们在学计算机语言时,数组就是顺序存储结构。当你告诉计算机,你要建立一个有9个整型数据的数组时,计算机就在内存中找了片空地,按照一个整型所占位置的大小乘以9,开辟一段连续的空间,于是第一个数据元素就放在数组的第一个位置,第二个放在第二个位置,这样一次摆放。
(2)、链式存储结构:把数据元素放在任意的存储单元了,这组存储单元可以是连续的,也可以是不连续的。
使用链式存储而不用顺序存储的原因是什么?简单的举个例子:
顺序存储结构是简单的有规律的,但是当人在排队的过程中,总会有人插队。还会有人上厕所、甚至有人放弃排队。所以这个队伍中会增加新成员,也可能会去掉老元素,整个结构都处于时刻变化中,显然,面对这样时常要变化的结构,顺序存储是不科学的。那怎么办呢?就会用到链式存储。举例:现在如银行、医院等地方,设置了排队系统,也就是每个人去了,先领一个号,等着叫号,叫到时去办理业务或看病。在等待的过程中,你爱在哪就在哪,可以是坐着、站着或者走动,甚至出去逛一圈,只要及时回来就行。你关注的需要是前一个号有没有被叫到,如果叫到了,下一个就轮到你了。
链式存储结构中,数据元素的存储关系并不能反映其逻辑关系,因此需要一个指针存放数据元素的地址,这样通过地址就可以找到相关联数据元素的位置。
3、总结:逻辑结构是面向问题的,而物理结构是面向计算机的。其基本目标就是讲数据及其逻辑关系存储到计算机的内存中。