按照视点的不同,我们把数据结构分为逻辑结构和物理结构。
逻辑结构
是指数据对象中数据元素之间的相互关系。
逻辑结构分为以下四种:
1. 集合结构
集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关系。每个元素都是“平等”的,他们的共同属性是“同属于一个集合”。
2. 线性结构
线性结构中的数据元素之间是一对一的关系。
3. 树形结构
树形结构中的数据元素之间存在一种一对多的层次关系。
4. 图形结构
图形结构的数据元素是多对多的关系。
我们在用示意图表示数据的逻辑结构时,要注意两点:
- 将每一个数据元素看作一个结点,用圆圈表示。
- 元素之间的逻辑关系用结点之间的连线表示,如果这个关系是有方向的,那么用带箭头的连线表示。
物理结构
很多书中也叫做存储结构,你只要在理解上把它们当作一回事就可以了。
物理结构:是指数据的逻辑结构在计算机中的存储形式。
数据是数据元素的集合,那么根据物理结构的定义,实际上就是如何把数据元素存储到计算机的储存器中。存储器主要是针对内存而言的,像硬盘、软盘、光盘等外部存储器的数据组织通常用文件结构来描述。
数据的存储结构应正确反映数据元素之间的逻辑关系,这才是最为关键的,如何存储数据元素之间的逻辑关系,是实现物理结构的重点和难点。
数据元素的存储结构形式有两种:顺序存储和链式存储。
1. 顺序存储结构
是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。
这种存储结构其实很简单,说白了就是排队占位。
数组就是这样的顺序存储结构。
当你告诉计算机,你要建立一个有9个整型数据的数组时,计算机就在内存中找了片空地,按照一个整型所占位置的大小乘以9,开辟一段连续的空间,于是第一个数组数据就放在第一个位置,第二个数据放在第二个,这样依次摆放。
2. 链式存储结构
实际上,我们总要面对有很多变化(增删改查)的结构,顺序存储是不科学的。
那我们引入链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。数据元素的存储关系并不能反映其逻辑关系,因此需要用一个指针存放数据元素的地址,这样通过地址就可以找到相关联数据元素的位置。
显然,链式存储就灵活多了,数据存在哪里不重要,只要有一个指针存放了相应的地址就能找到它了。
逻辑结构是面向问题的,而物理结构就是面向计算机的,其基本的目标就是将数据及其逻辑关系存储到计算机的内存中。
网友评论