1.1.1 数据
是能输入到计算机且能被计算机处理的各种符号的集合,它包括数值型数据(如整数、实数等)、非数值型数据(如文字、图像、声音等)。
是信息的载体;
是对客观事物符号化的表示;
能够被计算机识别、存储和加工。
1.1.2 数据元素
是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理(也成为元素、记录)。
一个数据元素可由若干个数据项构成。
1.1.3、数据项
构成数据元素不可分割的最小单位
数据、数据元素、数据项三者之间的关系:数据 > 数据元素 > 数据项
age: 学生表 > 个人记录 > 学号/姓名/性别/年龄
1.1.4 数据对象
是性质相同的数据元素的集合,是数据的子集
1.1.5 数据结构
数据元素不是孤立的,它们之间存在着某种关系,数据元素之间的关系称为结构。
数据结构:是指相互之间存在一种或多种特定关系的数据元素的集合。
数据结构还包括三个方面的内容:
(1)数据元素之间的逻辑关系,成为逻辑结构。
(2)数据元素及其关系在计算机内存中的表示(又称为映像)成为数据的物理结构或数据的 存储结构。
(3)数据的运算与实现,即对数据元素可以施加的操作以及这些操作在相应的存储结构上的 实现。
数据结构的两个层次:
(1)逻辑结构:
描述数据元素之间的逻辑关系;
与数据的存储无关,独立于计算机;
是从具体问题抽象出来的数学模型。
(2)物理结构:
数据元素机及其关系在计算机存储器中的结构(存储方式);
是数据结构在计算机中的表示。
1.1.6 逻辑结构
逻辑结构:是指数据对象中数据元素之间的相互关系。
1.1.7 逻辑结构的种类
逻辑结构的划分方法一:
1、线性结构:有且仅有一个开始和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。
age:线性表、栈、队列、串。
2、非线性结构:一个结点可能有多个直接前趋和直接后继。
age:树、图。
逻辑结构的划分方法二:
1、集合结构:集合结构中的数据元素除了同属于一个集合外,他们之间没有其它关系。
2、线性结构:有且仅有一个开始和一个终端结点,并且所有结点都最多只有一个直接前驱和一个直接后继。线性结构中的数据元素之间是一对一的关系。
3、树形结构:树形结构中的数据元素之间存在一对多的关系。
4、图形结构:图形结构的数据元素是多对多的关系。
将每个数据元素看作一个结点,用圆圈表示;
元素之江的逻辑关系用结点之间的连线表示,如果它们的关系是有方向的,要用带箭头的连线表示。
1.1.8 物理结构
物理结构:是指数据的逻辑结构在计算机中的存储形式;数据元素的存储结构有:顺序存储结构、链式存储结构、索引存储结构、散列存储结构。
1.1.9 四种基本存储结构
1、顺序存储结构
用一组连续的存储单元依次存储数据元素,数据元素之间的逻辑关系有元素的存储位置来表示。
2、链式存储结构
用任意的存储单元存储数据元素,数据元素之间的逻辑关系用指针来表示。
3、索引存储结构
在存储结点信息的同时,还建立附加的索引表。
4、散列存储结构
根据结点的关键字直接计算出该结点的存储地址。
1.1.10 数据类型
数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。
数据类型可以分为两类:
原子类型:是不可以再分解的基本类型,包括整型、实型、字符型等。
结构类型:由若干类型组合而成,是可以再进行分解。比如:整型数组是由若干整型数据组成的。
抽象:是指抽取出事物具有的普遍性的本质。
1.1.11 抽象数据类型
抽象数据类型(Abstract Data Type,ADT):是指一个数学模型及定义在该模型上的一组操作。
抽象数据类型体现了程序设计中问题分解、抽象和信息隐藏的特性。
抽象数据类型的格式:
ADT 抽象数据类型名
{
Data
数据对象的定义
数据元素之间逻辑关系的定义
Operation
操作 1
初始条件
操作结果描述
操作 2
...
操作 n
...
}ADT 抽象数据类型名
例如圆的抽象数据类型:
ADT Circle{
数据对象: D = {r, x, y | r, x, y 均为实数}
数据关系: R = {<r, x, y> | r是半径,<x,y>是圆心的坐标}
基本操作:
Circle(&C, r, x, y)
操作结果:构造一个圆
double Area(C)
初始条件:圆已存在
操作结果:计算圆的面积
double Circumference(C)
初始条件:圆已存在
操作结果:计算圆的周长
...
}ADT Circle