数据结构期末笔试复习,内容是上课课件和课本上的部分
目录
一、数据结构定义
数据项
初等项,是数据的不可分割的最小单位,
组合项,由若干数据项组成。
数据元素
数据的基本单位,一般由多个数据项组成。
数据对象
性质相同的数据元素的集合。
数据间的逻辑关系
1.用<di,dj>表示数据元素di和dj的先后关系, 称di为dj的前驱,dj为di的后继,(D,R)中的 R即为类似的二元关系的集合
2.数据的逻辑结构图:用结点表示数据元素 ,结点间的连线表示数据元素间的关系
数据结构一般包含三方面的内容
数据的逻辑结构
数据的逻辑结构描述数据元素之间的逻辑关系,是面向问题的,是独立于计算机的
数据的存储结构(或称物理结构)
数据的存储结构是数据对象和逻辑结构在计算机中的物理表示方式, 根据处理速度和存储空间而建立
数据的运算
每种逻辑结构都有一个运算的集合,如检索、插入、排序等
二、逻辑结构
1.线性逻辑结构
线性结构只有一个开始结点和一个端结点 ,且所有结点最多只有一个前驱和一个后继。
2.非线性逻辑结构
非线性结构的一个结点可能有多个前驱和后继
3.线性逻辑结构 vs. 非线性逻辑结构
线性逻辑结构对于问题求解更优,非线性逻辑结构抽象高效
三、存储结构
1.顺序存储
顺序存储把逻辑上相邻的结点存储在物理位置相邻的存储单元。
结点间的逻辑关系用存储单元的邻接关系来体现
非线性结构通过某种线性化方法也可实现顺序存储
2.链接存储
链接存储对逻辑上相邻的结点不要求存储在相邻的物理位置上,结点间的逻辑关系由 附加的指针表示。非线性结构常用链接存储,线性结构也可链接存储。链接存储 通常用程序语言的 指针 来描述
3.索引存储
存储结点数据的同时,建立附加的索引表,指向该结点储存位置
4.散列存储
根据结点的关键字计算存储地址,是一种关键字到地址的存储映射方法
四、抽象数据类型ADT
五、算法和算法分析
1.算法基本特性
输入
输出
确定性
(可传递性),算法每一步确切、无歧义地定义,每个动作都严格、清晰的规定
有穷性
有穷步后结束
可行性
每一个运算都是可行的
2.算法分析
正确性
正确完成需求
可读性
要可阅读(注释)
健壮性
输入数据非法时,显示错误信息并终止执行
时间复杂度
衡量算法的时间效率应该独立于计算机的软、硬件因素。
算法的时间复杂度是指算法中各条语句的执行次数之和。复杂度通常是问题规模n的函数,记为T(n),T(n) ∈ f(n) ,T(n)为算法的时间复杂度, O(f(n))表示其渐进时间复杂度——往往简称为时间复杂度
大o符号
空间复杂度
与时间复杂度类似,其中n为问题规模,f(n)为所需空间,但算法分析一般只讨论算法的时间效率