1. 基本概念和术语
-
数据:
是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。
两个前提:可以输入到计算机中、能被计算机程序处理。 -
数据元素:
是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。 -
数据项:
一个数据元素可以由若干个数据项组成,是数据不可分割的最小单位。 -
数据对象:
是性质相同的数据元素的集合,是数据的子集。 -
数据结构:
是相互之间存在一种或多种特定关系的数据元素的集合。
2. 逻辑结构与物理结构
按照视点的不同,把数据结构分为逻辑结构和物理结构。
2.1 逻辑结构
- 逻辑结构:是指数据对象中数据元素之间的相互关系。
分为以下四种:
(1) 集合结构
集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关系。如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/911d07113e812874c7902c00cf89a5f4.png)
(2) 线性结构
线性结构中的数据元素之间是一对一的关系。如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/4b134a12cd92ff919ef77117032f7c2f.png)
(3) 树形结构
树形结构中的数据元素之间存在一种一对多的层次关系。如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/424d01b961bd01b16aa3c78de0e665d9.png)
(4) 图形结构
图形结构的数据元素是多对多的关系。如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/613831f050e0d0d552a57ca9181e97b8.png)
绘制表示数据逻辑结构的示意图时,需注意:
a. 将每一个数据元素看做一个结点,用圆圈表示;
b. 元素之间的逻辑关系用结点之间的连线表示,如果这个关系是有方向的,那么用带箭头的连线表示。
2.2 物理结构
- 物理结构:是指数据的逻辑结构在计算机中的存储形式。
数据元素的存储结构形式有两种:顺序存储和链式存储。
(1) 顺序存储结构
是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/8f4b47da5956d3e28e495043151a4f2a.png)
(2) 链式存储结构
是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/b734da9ee9dd2ee4203f8858e8b68fa1.png)
其中,数据存在哪里不重要,只要有一个指针存放了相应的地址就能找到它。
3. 抽象数据类型
- 数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。
在C语言中,按照取值的不同,数据类型可分为两类:
(1) 原子类型:是不可以再分解的基本类型。
(2) 结构类型:由若干个类型组合而成,是可以再分解的。
小结
相关概念层级关系:
![](https://i-blog.csdnimg.cn/blog_migrate/37ed289878560570c7804474e13e1832.png)
数据结构分类:
![](https://i-blog.csdnimg.cn/blog_migrate/941bedd6a2c86e22033b85e6f1dafc47.png)
参考
《大话数据结构》 —— 1 数据结构绪论