“数据结构”的核心内容:研究数据之间存在的关系,考虑如何在计算机中有效地组织这些数据,从而有效地对数据进行各种处理。
1.1 常用术语
-
数据(Data)
定义:数据是人们利用文字符号、数字符号及其他规定的符号对客观现实世界的事物及其活动所做的抽象描述的信息。(计算机程序加工的“原料”)
案例:某班甲同学的姓名为张三,乙同学的姓名为李四,其中“张三”和“李四”就是关于班上同学姓名的描述,即数据。 -
数据元素(Data Element)
定义:数据元素是用于表示一个事物的一组数据,是数据的基本单位。(在计算机中通常作为一个整体来进行考虑和处理)
案例:字符串“张三”是一个数据,字符串中的“张”和“三”就是一个数据元素。 -
数据项(Data Item)
定义:数据项是数据元素中的一个项。一般情况下,一个数据元素由若干个数据项构成。
案例:描述一个学生信息的一个数据元素包含该学生的学号、姓名、性别、年龄等数据项 -
数据对象(Data Object)
定义:数据对象是性质相同的数据元素的集合,是数据的子集。
案例:描述n个学生信息的n个数据元素构成了一个数据对象。 -
数据类型(Data Type)
定义:数据类型是一组性质相同的值的集合,以及定义在这个集合上的一组操作的总称。
案例:高级语言中的整数数据类型,是指在某个区间(如[-32768, 32767])上的整数构成的集合,以及定义在这个集合上的一组操作(如加减乘除、乘方等)的总称。 -
抽象数据类型(Abstract Data Type,ADT)
定义:抽象数据类型通常由用户定义,用于表示实际应用问题的数据模型,一般由基本数据类型或已定义的抽象数据类型及定义在该模型上的一组操作组成。
案例:高级语言C中的struct,Java中的类都属于抽象数据类型。
使用ADT格式来定义抽象数据类型。
ADT 抽象数据类型名{
数据对象:<数据对象D的定义>
数据关系:<数据关系的集合R的定义>
基本操作:<基本操作的集合P的定义>
}ADT 抽象数据类型名
【示例】三元组的ADT格式
ADT triplet{
数据对象:
D = {
e1, e2, e3 | e1,e2,e3∈ElemSet} //ElemSet是某数据元素的集合
数据关系:
R = {
<e1, e2>, <e2, e3>}
基本操作:
(1)InitTriplet(&T, v1, v2, v3)
操作结果:构造三元组T,分别把参数v1、v2、v3的值赋给元素e1, e2, e3
(2)