当前位置:
文档之家› ((完整版))数据结构期末复习总结,推荐文档
((完整版))数据结构期末复习总结,推荐文档
double real,imag; Complex(double real, double imag); Complex add(Complex c); Complex sub(Complex c); } 1、算法定义:一个算法(algorithm)是一个有穷规则的集合,其规则确定一个解决某一特 定类型问题的操作序列(D.Knuth)。 算法的规则必须满足以下 5 个特性: ① 有穷性: 一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。
第 1 章 绪论 1.数据(Data) :是描述客观事物的数字、字符以及所有能输入到计算机中并能被计算机接 受的各种符号集合的统称。 包括数值数据和非数值数据(字符串、图形、图像、音频、视频)。 2.数据元素(Data Element) :表示一个事物的一组数据称为一个数据元素(结点顶点、记录) ;数据元素是数据的基本单位。 3.数据项(Data Item):是数据元素中有独立含义的、不可分割的最小标识单位(字段、 域、属性)。一个数据元素可由若干个数据项组成。 4.数据对象(Data Object):是性质相同的数据元素的集合,是数据的一个子集。如字符集合 C ={A,B,C,…} 。 数据(Data) :是描述客观事物的数字、字符以及所有能输入到计算机中并能被计算机接受 的各种符号集合的统称。 包括数值数据和非数值数据(字符串、图形、图像、音频、视频)。
数据元素(Data Element) :表示一个事物的一组数据称为一个数据元素(结点、顶点、 记录);数据元素是数据的基本单位。
数据项(Data Item):是数据元素中有独立含义的、不可分割的最小标识单位(字段、 域、属性)。一个数据元素可由若干个数据项组成。
数据对象(Data Object):是性质相同的数据元素的集合,是数据的一个子集。如字符集 合 C ={A,B,C,…} 。
[-231,…,-2,-1,0,1,2,…,231-1] 这个值集上的操作集合[+,-,*,/,%,=,==,!=,<,<=,>,>=]
抽象数据类型(Abstract Data Type ,简称 ADT):是指一个数学模型以及 定义在该模型上的一组操作。
ADT 的定义仅是一组逻辑特性描述,与其在计算机内的表示和实现无关。 因此,不论 ADT 的内部结构如何变化,只要其数学特性不变,都不影响其外部使 用。
K={k1, k2, …, k9} R={ <k1, k3>,<k1, k8>,<k2, k3>,<k2, k4>,<k2, k5>,<k3, k9>,<k5, k6>,<k8, k9>,<k9, k7>,<k4, k7>,<k4, k6>
有时候关系图不唯一(一般是无向图) 数据结构在计算机内存中的存储包括数据元素的存储和元素之间的关系的表示。 两种不同的存储结构:顺序存储结构和链式存储结构。
2、算法设计目标
– 正确性
– 健壮性
数据操作指对一种数据结构中的数据元素进行各种运算或处理。每种数据结构都有一组数 据操作。
• 初始化。 • 判断是否空状态。 • 统计元素的个数。 • 遍历:按某种次序访问所有元素,每个元素只被访问一次。 • 取值:获取指定元素值。 • 置值:设置指定元素值。 • 插入:增加指定元素。 • 删除:移去指定元素。 • 查找:在数据结构中寻找满足给定条件的数据元素。 • 排序:将数据元素 • ... 数据操作定义在数据的逻辑结构上; 数据操作的实现依赖于数据的存储结构。 • 数据结构三方面的关系: 数据的逻辑结构、数据的存储结构及操作这三方面是一个整体 例 6:线性表是一种逻辑结构,若采用顺序存储,可称其为顺序表;若采用链式存 储,则可称其为链表;若采用散列存储,则可称为散列表。 • 在给定了数据的逻辑结构和存储结构之后,按定义的操作集合及其操作的性质不同, 也可能导致完全不同的数据结构。 • 类型(type)是具有相同逻辑意义的一组值的集合。 • 数据类型是指一个类型和定义在这个类型上的操作集合。 数据类型定义了数据的性质、取值范围以及对数据所能进行的各种操作 例 7: Java 中整型类型 int 的值集是
顺序结构:数据元素存放的地址是连续的; 链式结构:数据元素存放的地址是否连续没有要求,用该指针来表示数据
元素之间的逻辑结构(关系)。 顺序存储—使用一组连续的内存单元依次存放数据元素,元素在内存中的物理存储
次序体现它们的逻辑次序。通常使用程序设计语言中的数组来实现。
• 链式存储—使用若干地址分散的存储单元存储数据元素,逻辑上相邻的数据元素在 物理位置上不一定相邻。数据元素间的逻辑关系通过结点间的链接关系来体现。通 常使用指针记载直接前驱元素或直接后继元素的存储地址。
数据的逻辑结构指数据元素之间的逻辑关系,用一个数据元素的集合和定义在此集 合上的若干关系来表示。
四种逻辑结构:集合、线性结构、树型结构、图状结构。 数据结构的形式定义是一个二元组:
Data-Structure=(D,S) 其中:D 是数据元素的有限集,S 是 D 上关系的有限集。 例 1:设数据逻辑结构 B=(K,R)
② 确定性:算法中每一条指令必须有确切的含义。不存在二义性。且算法只有一个入口和
一个出口。
③ 可行性: 一个算法是能行的。即算法描述的操作都可以通过已经实现的基本运算执输入,这些输入取自于某个特定的对象集合。
⑤ 输出: 一个算法有一个或多个输出,这些输出是同输入有着某些特定关系的量。
ADT 的形式化定义是三元组:ADT=(D,S,P) 其中:D 是数据对象,S 是 D 上的关系集,P 是对 D 的基本操作集。 ADT 的一般定义形式是: ADT <抽象数据类型名>{ 数据对象: <数据对象的定义> 数据关系: <数据关系的定义> 基本操作: <基本操作的定义> } ADT <抽象数据类型名> 例 8: 复数抽象数据类型描述如下: ADT Complex{