资源描述:
《数据结构复习纲要》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数据结构期末复习要点!!!数据结构 复 习 要 点 第2章:线性表的概念以及顺序和链式存储下查找、插入和删除算法和算法的时间复杂性。第3章:1. 概念: 栈、队列和循环队列; 2. 栈和队列的初始化、插入和删除算法;3. 栈、队列和循环队列的空、满条件。第5章:数组、三元组和十字链表的定义第6章:1. 各种定义;2.二叉树的链式存储结构和遍历(先序、中序、后序和层次);3. 树和森林的存储、遍历以及与二叉树的相互转换;4. Huffman树的构造。第7章:1. 图的存储(邻接矩阵、邻接表、邻接多重表)和遍历;2.最小生成树、关键路径和最短路的算法实
2、现。第9章:折半查找、二叉排序树、平衡二叉树和B-树的算法实现。第10章:1.基本排序算法(冒泡、简单选择、直接插入)的编程;2.其它排序(希尔、快速、2-路归并、堆、表插入)的算法实现;3. 各种排序的稳定性。第2章:线性表的概念以及顺序和链式存储下查找、插入和删除算法和算法的时间复杂性。作业:2.2, 2.3, 2.6, 2.7, 2.8, 2.15, 2.19, 2.20第3章:1. 概念: 栈、队列和循环队列; 2. 栈和队列的初始化、插入和删除算法;3. 栈、队列和循环队列的空、满条件。作业:3.1, 3.6, 3.11,第5章:数组、三元组和十字
3、链表的定义第6章:1. 各种定义;2.二叉树的链式存储结构和遍历(先序、中序、后序和层次);3. 树和森林的存储、遍历以及与二叉树的相互转换;4. Huffman树的构造。作业:6.5, 6.6, 6.14, 6.19, 6,23, 6.26, 6.27, 6.28, 6.37, 6.38, 6,47第7章:1. 图的存储(邻接矩阵、邻接表、邻接多重表)和遍历;2.最小生成树、关键路径和最短路的算法实现。作业:7.1, 7.7, 7.11, 7.13第9章:折半查找、二叉排序树、平衡二叉树和B-树的算法实现。作业:9.9, 9.11, 9.14,
4、第10章:1.基本排序算法(冒泡、简单选择、直接插入)的编程;2.其它排序(希尔、快速、2-路归并、堆、表插入)的算法实现;3. 各种排序的稳定性。作业:10.1, 10.3 第一章 绪论第二节 基本概念和术语1.3 抽象数据类型的表示与实现类C语言的简要说明例1-7 抽象数据类型Triplet的表示与实现1.4 算法和算法分析算法 算法(Algorithm)就是对特定问题求解步骤的一种合理的描述。它有如下特征:有穷性;确定性;可行性。当然需要输入初始条件-输入,和操作结果-输出。算法设计的要求1. 正确性;2. 可读性;3.健壮性; 4.
5、 高效率性和低存储性 1.4 算法和算法分析算法效率的度量—时间和空间的度量 衡量一个算法的效果(好坏),最广泛采用的标准主要是看这个算法解决问题所花费的时间长短,当然一般还要看所需要的存储空间。但是一个算法执行所花费的时间既与计算机的速度有关,也与要求解的实例有关。为了客观公正,必需要一个通用的标准。 这个标准就是找一个参变量--问题的规模(Size), 即一个实例按二进制编码输入到计算机的编码长度,也就是所占存储的大小。问题的规模通常用整数量n表示。一般情况是数据元素的大小假定为1个单位,这样问题的规模n就是数据元素的个数(大部分情况都是这
6、样)。 为了便于比较同一问题的不同算法或者分析一个问题的算法复杂性,通常的做法是,从算法中选取几种对于所研究的问题来说是基本操作的原操作,以该基本算法重复执行的次数作为算法的时间度量。这个度量一般是n的某个函数f(n),算法的时间复杂度记作T(n)=O(f(n)). 如: 时间复杂度分为最坏情况、最好情况和平均情况下的时间复杂度。 空间复杂度是衡量一个算法所需存储空间尺度,记作S(n)=O(f(n)). 2.3 线性表的链式表示和实现线性表的顺序存储结构的特点是逻辑关系上相邻的两个元素在物理位置上也相邻,因此
7、可以随机存取表中任一元素,它的存储位置可用一个简单、直观的公式来表示。然而, 这种存储结构的弱点是: 在作插入或删除操作时,需移动大量数据元素,特别是当数据元素本身的大小比较大时尤为如此。线性表的链式存储结构--它不再要求逻辑上相邻的元素在物理位置上也相邻,因此它没有顺序存储结构所具有的弱点,但同时也失去了顺序表可随机存取的优点(即查找不是很方便)。2.3.1 线性链表 线性表的链式存储结构的特点