目录
2.数据元素(Data Element)和数据项(Data Item)
1.数据(Data)
能输入数据且能被计算机处理的各种符号的集合。包括:数值型数据和非数值型数据。
2.数据元素(Data Element)和数据项(Data Item)
数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
数据元素也简称为元素,或称为记录,结点或顶点。
一个数据元素可以由若干个数据项组成。数据项是构成数据元素的不可分割的最小单位。
数据>数据元素>数据项。
3.数据对象(Data Object)
数据对象是性质相同的数据元素的集合,是数据的一个子集。
数据元素与数据的关系-是集合的个体;数据元素与数据的关系-是集合的子集;
4.数据结构(Data Structure)
数据元素不是孤立存在的,他们之间存在某种关系,数据元素相互之间的关系称为数据结构。
数据结构是指相互之间存在一种或多种特定关系的数据元素的集合,或者说是带结构的数据元素的集合。
数据结构包括以下三个方面的内容:
(1)数据元素之间的逻辑关系,也称为逻辑结构。
(2)数据元素及其关系在计算机内存中的表示(又称为映像),称为数据的物理结构或数据的存储结构。
(3)数据的运算和实现,即对数据元素可以施加的操作以及这些操作在相应的存储结构上的实现。
5.数据结构的两个层次:逻辑结构和物理结构(存储结构)
逻辑结构:
·描述数据元素之间的逻辑关系;
·与数据的存储无关,独立于计算机;
·是从具体问题抽象出来的数学模型;
物理结构(存储结构):
·数据元素及其关系在计算机存储器中的结构(存储方式);
·是数据结构在许算机中的表示;
逻辑结构与存储结构的关系:
·存储结构是逻辑关系的映象与元素本身的映象;
·逻辑结构是数据结构的抽象,存储结构是数据结构的实现;
·两者综合起来建立了数据元素之间的结构关系;
6.逻辑结构的划分
可划分为线性结构和非线性结构
(1)线性结构
有且仅有一个开始和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。
例如:线性表、栈、队列、串
(2)非线性结构
一个结点可能有多个直接前趋和直接后继。
例如:树、图
或者:划分为四种基本逻辑结构
7.存储结构的种类
顺序存储结构/链式存储结构/索引存储结构/散列存储结构
(1)顺序存储结构:连续的存储单元
(2)链式存储结构:任意存储单元,逻辑关系用指针表示
(3)索引存储结构:在存储节点信息的同时,还建立附加的索引表
(4)散列存储结构:
8.数据类型和抽象数据类型
例如,C语言中:提供int, char, float, double等基本数据类型;数组、结构、共用体、枚举等构造数据类型;还有指针、空(void)类型;用户也可用typedef 自己定义数据类型;
一些最基本数据结构可以用数据类型来实现,如数组、字符串等;而另一些常用的数据结构,如栈、队列、树、图等,不能直接用数据类型来表示。
高级语言中的数据类型明显地或隐含地规定了在程序执行期间变重和表达的所有可能的取值范围,以及在这些数值范围上所允许进行的操作。
例如,C语言中定义变量i为int类型,就表示i是[-min,max]范围的整数,在这个整数集上可以进行+、-、*、\、%等操作;
数据类型的作用:约束变量或常量的取值范围,约束变量或常量的操作。
综上给出数据类型的定义:数据类型是一组性质相同的值的集合以及定义于这个值集合上的一组操作的总称。
数据类型=值的集合+值集合上的一组操作
抽象数据类型(Abstract Data Type,ADT):是指一个数学模型以及定义在此数学模型上的一组操作
·由用户定义,从问题抽象出数据模型(逻辑结构);
·还包括定义在数据模型上的一组抽象运算(相关操作);
·不考虑计算机内的具体存储结构与运算的具体实现算法;
如,定义圆:
定义:到某个点的距离相等的点的集合
运算:构造圆、求面积、求周长
抽象数据类型的形式定义:
基本操作的定义格式(三部分):
(1)参数表:赋值参数只为操作提供输入值。引用参数以&打头,除可提供输入值外,还将返回操作结果。
例如:对图片G进行缩放n倍的操作,定义接收的图片为G’:
现在要使得在原图上更新:可以参照赋值表达式写成:
用引用参数描述就是:scale(&G,n)
(2)初始条件:描述操作执行之前数据结构和参数应满足的条件,若不满足,则操作失败,并返回相应出错信息。若初始条件为空,则省略之。
(3)操作结果:说明操作正常完成之后,数据结构的变化状况和应返回的结果。
抽象数据类型举例1:重新定义一个圆
抽象数据类型举例2:定义复数