一、
1.数据可以被范围两大类:一是整数、实数等数值数据;另一类是文字、声音、图形和图像等非数值数据。数据是计算机处理程序的对象。
2.数据元素是数据的基本单位,构成数据元素的最小单位称为数据项,并且数据元素通常具有相同个数和类型的数据项。
3.在不同的应用场合,数据元素又称为结点、顶点、记录等。
4.数据处理(Data Process):对数据进行检索、插入、删除、合并、拆分、排序、统计、计算、转换、输入、输出等的操作过程。
5.数据结构(Data Structure):相互之间存在一定关系的数据的集合。是数据及其元素之间相互关系的表示。.
6.逻辑结构:数据元素之间一般存在某种特定的关系,这种关系称为数据的逻辑结构。逻辑结构分为四类:线性结构、树形结构、图结构、集合。
7.物理结构(存储结构):数据及其逻辑结构在计算机内存中的表示形式。包括数据元素的表示和其关系的表示。存储结构的分类:a.顺序结构;b.链式结构。
8.计算机的主存储器的特性:
- 其存储空间提供了一种具有非负整数地址编码的,相邻单位的集合,其基本的存储单元是字节。
- 计算机的指令具有按地址随机访问存储空间内任意单元的能力,访问不同地址所需的访问时间基本相同。
9.用一块无空隙的存储区域存储数据称为顺序存储。顺序存储把一组结点存储在按地址相邻的顺序存储单元里,结点间的逻辑后继关系用存储单元的自然顺序关系来表达。顺序存储结构称为紧凑存储结构,其紧凑性是指它的存储空间除了存储有用数据外,没有用于存储其他附加的信息。
10.利用指针,在结点的存储结构中附加指针字段称为链接法,两个结点的逻辑后继关系可以用指针的指向来表达。任意的逻辑关系,也可以使用这种指针地址来表达。一般的做法是将数据结点分为两部分: 数据字段 指针字段
二、抽象数据类型(Abstract Data Type(ADT))
数据类型
数据类型显式或隐含地规定了:在程序执行期间变量或表达式的取值范围以及在这些值上允许执行的操作。即数据类型是一个值的集合和定义在这个值集上的一组操作的总称。
抽象数据类型
由用户定义,用以表示应用问题的数据模型。 ADT是指一种数据结构以及定义在该数据结构上的一组操作。 由基本的数据类型组成, 并包括一组相关的服务(或称操作)。 信息隐蔽和数据封装,使用与实现相分离。
从抽象数据类性的角度,可以把数据结构的实现过程分为抽象层、设计层和实现层。
a.抽象层(ADT的定义):数据模型(逻辑结构)、操作集合
b.设计层:数据表示(存储结构)、算法设计
c.实现层(C、......):自定义数据类型、自定义函数 实现层(C++、Java、......):成员变量、成员函数——>类
ADT的定义(描述):
一个 ADT 的定义不涉及它的实现细节,在形式上可繁可简。通常包含以下内容: 抽象数据类型名 数据元素之间逻辑关系的定义 每种基本操作的接口(操作的名称和该操作的前置条件、输入、功能、输出、后置条件的定义)
ADT 抽象数据类型名
Data
数据元素之间逻辑关系的定义
Operation
操作 1
前置条件:执行此操作前数据所必须的状态
输入:执行此操作所需要的输入
功能:该操作将完成的功能
输出:执行该操作后产生的输出
后置条件:执行该操作后数据的状态
操作 2
……
……
操作 n
endADT
整数的ADT:
ADT integer
Data
整数a:
Operation
Constructor
前置条件:整数a不存在
输入:一个整数b
功能:构造一个与输入值相同的整数
输出:无
后置条件:整数a具有输入的值
Set
前置条件:存在一个整数a
输入:一个整数b
功能:修改整数a的值,使之与输入的整数值相同
输出:无
后置条件:整数a的值发生改变
Add
前置条件:存在一个整数a
输入:一个整数b
功能:将整数a与输入的整数b相加
输出:相加后的结果
后置条件:整数a的值发生改变
Sub
前置条件:存在一个整数a
输入:一个整数b
功能:将整数a与输入的整数b相减
输出:相减的结果
后置条件:整数a的值发生改变
endADT
长方形的ADT:
ADT rectangle
Data
长方形的长和宽:w, h
Operation
Constructor
前置条件:长方形不存在
输入:一个长方形的长和宽
功能:根据输入长和宽构造长方形
输出:无
后置条件:长方形的长和宽具有输入值
S
前置条件:存在一个长方形
输入:无
功能:计算长方形的面积
输出:计算的结果
后置条件:长方形的长和宽保持不变
……
endADT