开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第1天,点击查看活动详情
数据机构
第一章 绪论
一、数据结构的定义
基本概念
数据:描述客观事物的数和字符的集合。(例:数值型:整数、实数等)
数据元素:数据的基本单位。也叫元素,或称为记录、结点或顶点。
数据项:数据元素的最小单位。也称为字段或域。
数据对象:指性质相同的数据元素的集合。
数据结构:指所有数据元素以及数据元素之间的关系,可以看作是相互之间存在着某种关系。
数据结构的三要素
1.逻辑结构
数据元素之间的逻辑关系,和数据的存储无关,独立于计算机;
-
线性结构
元素之间存在一对一的关系,有且只有一个开始和一个终端节点,并且节点最多只有一个直接前趋和一个直接后继。
-
非线性结构
一个结点可能存在多个直接前驱和直接后继。
2.四类基本逻辑结构
-
集合结构:结构中的数据元素除了同一个集合之外,没有其他关系。
-
线性结构:结构中的元素是一对一的关系。
-
树形结构:结构中的元素是一对多的层次关系。
-
图状结构或网状结构:结构中的元素存在多对多的任意关系。
3.存储结构
数据元素以及关系在计算机内存中的表示;
- 顺序存储结构:用一组连续的存储单元依次存储数据元素,数据元素的逻辑关系由元素的存储位置决定。
c语言中用数组来实现顺序存储结构
例:(bat,cat,eat,...)
-
链式存储结构:用一组任意的存储单元存储数据元素。元素之间的逻辑关系由指针来表示。
-
索引存储结构:在存储节点信息的同时,还建立附加的索引表。
- 存储所有数据元素信息的表叫做主数据表。
- 索引项:索引表中的每一项。
-
散列存储结构:根据元素的关键字通过哈希函数直接计算出一个值,并将这个值作为该元素的存储地址。
4.数据运算
是对数据实施的操作。 对数据的常用操作:查找,插入,删除,更新,排序等。 数据运算分为运算定义和运算实现两个层面。
- 运算定义:是对运算功能描述,是抽象的,是基于逻辑结构的。
- 运算实现:是运算功能的实现步骤,是具体的,是基于存储结构的。
数据类型和抽象数据类型
1.数据类型
是一组性质相同的值的集合和定义在这个集合上的一组(哪些操作)操作的总称。 例:在c中的基本数据类型有 int 型,float 型,char 型,double 型等。 数据类型可以分为原子类型和结构类型
- 原子类型:其值不可以再分的数据类型。
2.抽象数据类型(Abstract Data Type,ADT)
将一些有一定关联的基本数据类型打包,作为新的数据类型使用
- 结构类型:其值可以再分解成若干分量的数据类型。
Struct Coordinate{
int X;//X,Y就是分量
int Y;
}