一、基本概念与术语
1、数据(Data)
数据是能输入计算机且能被计算机处理的各种符号的集合,分为数值型数据和非数值型数据(文字、图像、声音)
2、数据元素(Data Element)
数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。简称为元素,或称记录、结点或项点。
3、数据项
数据项是数据元素不可再分割的最小单位
数据>数据元素>数据项
例如:学生表>个人记录>学号、姓名
4、数据对象(Data Object)
数据对象是性质相同的数据元素的集合,是数据的一个子集。
5、数据结构(Data Structure)
数据元素相互之间的关系称为结构,是指相互之间存在一种或多种特定关系的数据元素集合
数据结构包括:逻辑结构、存储结构(物理结构)、操作方法(数据的运算和实现)
- 逻辑结构式数学模型,与数据的存储无关,是独立于计算机的
线性结构 | 仅有一个开始和终端结点,所有节点最多有一个前驱或后继 | 线性表、栈、队列、串、数组 | |
非线性结构 | 1对多或多对多,一个结点可能有多个直接前驱或后继 | 树、图 | |
四类 | 集合 | 除在统一集合外无其他关系 | |
基本 | 线性结构 | 一对一 | |
逻辑 | 树形结构 | 一对多 | |
结构 | 图形结构 | 多对多 |
2.存储结构
顺序结构 | 连续空间、依次存储 |
链式结构 | 任意空间,通过介入指针实现 |
索引结构 | 在存储节点信息的同时还建立的附加的索引表 |
散列结构(哈希) | 根据结点关键字直接计算出该结点的存储地址 |
二、数据的类型和抽象数据类型
1、数据类型
数据类型是一组性质相同的值的集合以及定义于这个集合的一组操作的总称,用来约束变量或常量的取值范围、操作
一些最基本的数据结构可以用数据类型来实现,如数组,字符串;另一些常用的数据结构如栈、队列、树、图等,不能直接用数据类型来表示
2、抽象数据类型
抽象数据(ADT)是指一个数学模型以及定义在此上的一组操作
ADT=逻辑结构+抽象运算(操作方法)
抽象数据形式定义
可用(D,S,P)三元组表示
D:数据对象
P:对D 的基本操作集
S:D上的关系集
定义格式
ADT 抽象数据类型名{
数据对象:<数据对象的定义>
数据关系:<数据关系的定义>
基本操作:<基本操作的定义>
}ADT 抽象数据类型名
三、时间复杂度和空间复杂度
空间复杂度:用于量度一个算法运行过程中临时占用的存储空间大小。由嵌套最深层的语句的频度决定
一般也作为问题规模n的函数,采用数量级形式描述,记作:
S(n) = O(g(n))
若一个算法的空间复杂度为O(1),则称此算法为原地工作或就地工作算法。
函数体内分配的变量空间为临时变量,不计形参占用的空间,这里仅计i、maxi变量的空间,其空间复杂度为O(1)