数据结构自学笔记001(基本概念与术语)
1、数据(Data)
输入计算机能够被计算机处理的各种符号的集合
- 信息的载体
- 是对客观事物符号化的表示
- 能够被计算机识别,存储和加工
包括数值型的数据(整数、实数等)和非数值型数据(文字、图像、图形、声音)
2、数据元素(Data element)
是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理
简称元素,记录,结点,顶点
一个数据元素可以有多个数据项组成(Data Item)
3、数据项
构成数据元素的不可分割的最小单位
数据>数据元素>数据项
4、数据对象
性质相同的数据元素组成的集合,十数据的一个子集
5、数据结构(Data Structure)
数据元素不是孤立存在的,他们之间存在着某种关系,数据元素相互之间的关系成为结构
主要包括三个方面的内容:
(1)数据结构之间的逻辑关系:逻辑结构
(2)数据元素及其关系在计算机内存中的表示(映像):物理结构(存储结构)
(3)数据元素可以施加的操作以及这些操作在相应的存储结构上的实现:数据的运算与实现
逻辑结构与数据结构关系:
存储结构是逻辑结构的映像与元素本身的映像
逻辑结构十数据结构的抽象,存储结构十数据结构的实现
两者综合起来建立了数据元素之间的结构关系
逻辑结构的分类:
划分方法一:
(1)线性结构
有且仅有一个开始和终端结点,并且所有结点最多有一个直接前趋和一个直接后继
(线性表、栈、队列、串)
(2)非线性结构
一个结点可能有多个直接前趋和直接后继
(树、图)
划分方法二:
(1)集合结构
(2)线性结构
(3)树形结构
(4)图状结构或网状结构
存储结构的分类:
(1)顺序存储结构:
用一组连续的存储单元一次存储数据元素,数据元素之间的逻辑关系有元素的存储位置来表示
C语言中用数组来实现顺序存储结构(元素顺序不可更改)
(2)链接存储结构:
用一组任意的存储单元存储数据元素。数据元素之间的逻辑关系用指针来表示
C语言中用指针来实现链式存储结构
(3)索引存储结构:
在存储结点信息的同时,建立附加的索引表。
(4)散列存储结构
6、数据类型和抽象数据类型
(1)数据类型(Data Type)
高级语言中的数据类型明显地活着隐含地规定了在程序执行期间变量和表达的所有可能的取值范围,以及在这些数值范围上所允许进行的操作。
数据类型的作用:
1)约束变量或常量的取值范围
2)约束变量或常量的操作
(2)抽象数据类型(Abstract Data Type;ADT)
是指一个数学模型以及定义在此数学模型上的一组操作
- 由用户定义,从问题抽象出来的数据模型(逻辑结构)
- 包括定义在数据模型上的一组抽象运算(相关操作)
- 不考虑计算机内的具体的存储结构与运算的具体实现算法(抽象出来的)
抽象数据类型的形式定义:
可以用三元组(D,S,P)来表示
其中:D:数据对象 S:D上的关系集 P:对D的基本操作集
定义格式:
ADT 抽象数据类型名
{
Data
数据对象:<数据对象的定义>
数据元素之间逻辑关系的定义
Operation
操作1
初始条件
操作结果描述
操作2
…
操作3
…
}ADT 抽象数据类型名
例如:进行圆的定义:
ADT Circle
{
数据对象:D={r,x,y|r,x,y均为实数}
数据关系:R={<r,x,y>|r是半径,<x,y>是圆心坐标}
基本操作:
Circle(&C,r,x,y)
操作结果:构造一个圆
double Area©
初始条件:圆已存在
操作结果:计算面积
double Circumference©
初始条件:圆已存在
操作结果:计算周长
…
}ADT Circle