基本概念和术语
根据数据元素之间关系的不同特性,通常有下列4类基本结构:
(1)集合 结构中的数据元素之间除“同属于一个集合”的关系外,别无其他关系;
(2)线性结构 结构中的数据元素之间存在一个对一个的关系
(3)树形结构 结构中的数据元素之间存在一个对多个的关系
(4)图状结构或网状结构 结构中的数据元素之间存在多个对多个的关系
Data_Structure = (D,S)
D是数据元素的有限集,S是D上关系的有限集
数据结构在计算机中的表示(又称映像)称为数据的物理结构,又称存储结构。它包括数据元素的表示和关系的表示。在计算机中表示信息的最小单位是二进制数的以为,叫做位(bit)。
数据元素之间的关系在计算机中有两种不同的表示方法:顺序映像和非顺序映像,并由此得到两种不同的存储结构:顺序存储结构和链式存储结构。
抽象数据类型(Abstract Data Type)是指一个数据模型以及定义在该模型上的一组操作。抽象数据类型的定义取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关,即不论其内部结构如何变化,只要它的数学特性不变,都不影响其外部的使用。
一个含抽象数据类型的软件模块通常应包含定义、表示和实现三个部分。
抽象数据类型的定义由一个值域和定义在该值域上的一组操作组成。可分为三种类型:
- 原子类型(atomic data type)属原子类型的变量的值不可分解
- 固定聚合类型(fixed-aggregate data type) 属该类型的变量,其值由确定数目的成分按某种结构组成
- 可变聚合类型(variable-aggregate data type)和固定聚合类型相比较,构成可变聚合类型的“值”的成分的数目不确定
抽象数据类型(D,S,P)D是数据对象,S是D上的关系集,P是对D的基本操作集。
抽象数据类型的表示与实现
抽象数据类型可通过固有数据类型来表示和实现,即利用处理器中已存在的数据类型来说明新的结构,用已经实现的操作来组合新的操作。
- 预定义常量和类型
- 数据结构的表示(存储结构)用类型定义(typedef)描述。数据元素类型约定为ElemType,由用户在使用该数据类型时自行定义。
- 基本操作的算法
- 赋值语句
- 选择语句
- 循环语句
- 结束语句
- 输入和输出语句
- 注释
- 基本函数有
- 逻辑运算约定
算法和算法分析
算法
算法效率的度量
- 事后统计的方法
- 事前分析估算的方法:依据的算法选用何种策略;问题的规模;书写程序的语言;编译程序所产生的机器代码的质量;机器执行指令的速度----渐进时间复杂度
算法的存储空间需求
空间复杂度(space complexity)作为算法所需存储空间的量度,记作
S(n)=O(f(n))