参考资料:《数据结构(C语言版)严蔚敏著》
版权说明:未经作者允许,禁止转载。如引用本文内容,需标明作者及出处。如本文侵犯了您的权益,请联系我删除并致歉。
文章说明:如文章中出现错误,请联系我更改。如您对文章的内容有任何疑问,也欢迎来与我讨论。
本文正在施工中...请稍等...
基本概念
1、数据:数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。
2、数据元素:数据元素是数据的基本单位,一个数据元素可由若干个数据项组成,数据项是构成数据元素的不可分割的最小单位。
3、数据对象:数据对象是具有相同性质的数据元素的集合,是数据的一个子集。
4、数据类型:数据类型是一个值的集合和定义在这个值集上的一组操作的总称。按“值”的不同特性,高级程序语言中的数据类型分为两类:一类是原子类型,其值不可再分。另一类是结构类型,其值可以再分解成若干成分的数据类型。
5、抽象数据类型:抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。按其值的不同特性,可细分为三类:原子类型、固定聚合类型、可变聚合类型。属于原子类型的变量的值不可分解;属于固定聚合类型的变量的值由确定数目的成分按某种结构组成;属于可变聚合类型的变量的值的由不确定数目的成分按某种结构组成。抽象数据类型可用三元组 (D, S, P) 表示,其中D是数据对象,S是D上的关系集,P是对D的基本操作集。采用如下格式定义抽象数据类型:
ADT 抽象数据类型名{
数据对象:<数据对象的定义>
数据关系:<数据关系的定义>
基本操作:<基本操作的定义>
}ADT 抽象数据类型名
其中,数据对象和数据关系的定义用伪码表示,基本操作的定义采用如下格式:
基本操作名(参数表)
初始条件:<初始条件描述>
操作结果:<操作结果描述>
其中,参数包含两种:赋值参数、引用参数。“初始条件”描述了操作执行之前数据结构和参数应满足的条件,若不满足,则操作失败,并返回相应出错信息,若无初始条件,可以省略。“操作结果”说明了操作正常完成之后,数据结构的变化状况和应返回的结果。(注意,为了结构简单和描述方便,在后续文章中使用“引用”。但在C语言中没有引用类型,引用可理解为变量的别名,对引用的操作实际上是对变量本身的操作,可使用指针相应替代)
6、多形数据类型:多形数据类型是指其值的成分不确定的数据类型。
7、数据结构:数据结构是相互之间存在一种或多种特定关系的数据元素的集合,可以用二元组 (D, S) 表示,其中D是数据对象,S是D上的关系集。完整的数据结构由三部分组成:数据的逻辑结构、数据的存储结构、数据的运算。逻辑结构即数据元素之间的逻辑关系,通常有下列4类:集合、线性结构、树形结构、图状结构或网状结构。存储结构即数据结构在计算机中的表示,又称为物理结构,主要有下列4种:顺序存储、链式存储、索引存储、散列存储。数据的运算包括数据在逻辑结构上的定义和在存储结构上的实现。
8、算法:算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。算法具有5个重要的特性:有穷性、确定性、可行性、输入、输出。一个优秀的算法应考虑达到以下目标:正确性、可读性、健壮性、高效率与低存储量需求。
9、算法效率的度量:用时间复杂度描述。
10、算法的存储空间需求:用空间复杂度描述。
常见时间复杂度(由小到大):
常数级
对数级
线性级
线性对数级
平方级
立方级
......
k次方级
指数级