数据结构与算法课件.ppt
《数据结构与算法课件.ppt》由会员分享,可在线阅读,更多相关《数据结构与算法课件.ppt(63页珍藏版)》请在三一办公上搜索。
1、-,李赛红 2011-03,全国计算机等级考试二级公共基础知识(一),河海大学文天学院教育培训中心,-,1.数据结构与算法,-,1.2 数据结构的基本概念 ,1.3 线性表的顺序存储,1.4 栈和队列 ,1.1 算法基本概念及算法评价 ,第一章 数据结构与算法,1.6 树与二叉树 ,1.7 查找与排序 ,1.5 线性表的链式存储,-,第一章 数据结构与算法,1.1 算法基本概念及算法评价,1.1.1 算法 考点1 算法的定义 算法是用来解决某个特定类型问题的有限运算序列。简单的说:算法就是解决问题的方法. eg.程序是用计算机语言表达的算法; 流程图是图形化的算法,-,第一章 数据结构与算法,
2、算法特征: (1)有穷性:一个算法(对任何合法的输入)在执行有穷步后能够结束,并且在有限的时间内完成。(2)确定性:算法中的每一步都有确切的含义。(3)可行性:算法中的操作能够用已经实现的基本运算执行有限次来实现。(4)输入:一个算法有零个或者多个输入,零个输入就是算法本身缺定了初始条件。(5)输出:一个算法有一个或者多个输出,以反映出数据加工的结果。 (拥有足够的情报),-,第一章 数据结构与算法,例1. 问题处理方案的正确而完整的描述称为_。2005年4月 填空第5题例2. 以下叙述中正确的是(A)用C语言实现的算法必须要有输入和输出操作 (B)用C语言实现的算法可以没有输出但必须要有输入
3、 (C)用C程序实现的算法可以没有输入但必须要有输出 (D)用C程序实现的算法可以既没有输入也没有输出 2005年9月 选择题第13题例3. 算法具有五个特性,以下选项中不属于算法特性的是 (A)有穷性(B)简洁性(C)可行性(D)确定性 2005年4月 选择题第11题,算法,C,B,-,第一章 数据结构与算法,-,第一章 数据结构与算法,算法设计的基本方法(1)列举法- 根据提出的问题列举所有可能的情况,并用问题中给定的条件检验哪些是需要的而哪些是不需要的;(2)归纳法- 通过列举足够多的特殊情况发现其中一些规律,经过分析最终找出一般的关系;(3)递推法- 从已知的初始条件出发,逐次地推出所
4、要求的各中间结果和最后结果;(4)递归法 - 首先将问题逐层分解最后归结为一些最简单的问题,解决这些最简单问题后再沿着原来分解的逆过程逐步进行综合。 (5)减半递推技术- 工程上常用的分治法,即将问题的规模减半来解,最后重复“减半”的过程;(6)回溯法- 在处理复杂数据结构时,通过对问题的分析找出一 个解决问题的线索,然后沿着次线索逐步试探,若失败就逐步回退并换别的路线再进行试探;,-,第一章 数据结构与算法,考点2 算法的复杂度 1.算法设计的要求:(一个好的算法要达到的目标) (1)正确性 (2)健壮性 (3)可读性 (4)效率与低存储量的要求 2.算法效率的度量 1)算法的时间复杂度 算
5、法的执行时间=每条语句执行时间之和; 每条语句执行时间=语句执行(频度)次数 * 语句执行一次所需时间; 独立于软硬件系统来分析算法的时间耗费 可以设每条语句执行时间均为一个单位时间 算法的执行时间=所有语句频度之和,-,第一章 数据结构与算法,算法复杂度,-,第一章 数据结构与算法,例1. 算法复杂度主要包括时间复杂度和 【1】 复杂度。2005年9月 填空第2题 例2. 对长度为N的线性表(一维数组)进行顺序查找,在最坏的情况下所需要的比较次数为 2005年4月 选择第4题 (A)log2n(B)n/2(C)n(D)n+1 。,空间复杂度,C,-,第二节 数据结构基本概念,1.2 数据结构
6、的基本概念,1.2.1 数据结构 考点3 数据结构的定义 : 数据结构(data structure)是指相互之间存在一种或多种特定关系的数据元素的集合,即数据的组织形式。 数据+关系数据结构学科,主要研究和讨论以下三个方面: (l)数据集合中个数据元素之间所固有的逻辑关系,即数据的逻辑结构; (2)在对数据元素进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构; (3)对各种数据结构进行的运算。,-,第二节 数据结构基本概念,基本概念: (1)数据(data):是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。 (2)数据元素(data
7、element):是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 (3)数据对象(data object):是性质相同的数据元素的集合。(数据元素是数据对象的一个实例) 例如:所有书的书目信息为数据对象,每一条书目信息为数据元素。,-,第二节 数据结构基本概念,(4)数据的逻辑结构 : 对数据元素之间逻辑关系的描述。一个数据结构应该包含两方面的信息:数据元素的集合和定义在这个集合上的关系来表示.,(5)数据的存储结构 (物理结构) 数据的逻辑结构在计算机中存储空间中的存放形式称为数据的存储结构(物理结构)。,1)顺序存储方式(向量存储),2)链式存储方式,3)索引存储方式,-
8、,第二节 数据结构基本概念,考点4 数据结构的图形表示 例如:一年四季的图形表示:例如:反映家庭成员辈分关系的图形表示,-,第二节 数据结构基本概念,1.2.3 线性结构与非线性结构 考点5 线性结构与非线性结构 如果在一个数据结构中一个数据元素都没有,则称该数据结构为空的数据结构。 根据数据结构中各数据元素之间逻辑关系,一般将数据结构分为两大类型:线性结构与非线性结构。 非空数据结构满足: (l)有且只有一个没有前件的结点; (2)每一个结点最多有一个前件(直接前驱),也最多有一个后件(直接后继)。则称该数据结构为线性结构。,-,-,1.3 线性表的顺序存储结构及链式存储 1.3.1 线性表
9、的基本概念考点6 1.线性表(逻辑)的定义 线性表是n(n0)个元素构成的有限序列(a1,a2,an)。n=0时称为空表 2.线性表的特性: (1) 当1in时,ai的直接前驱为ai-1, ai的直接后继为ai+1 (2) 除了第一个元素与最后一个元素,序列中任何一个元素有且仅有一个直接前驱元素,有且仅有一个直接后继元素。,第三节 线性表,-,1.3.2 考点7 线性表的顺序存储结构 用一组地址连续的存储单元依次存储线性表中的数据元素,数据元素之间的逻辑关系通过元素的存储位置直接反映。,第三节 线性表,-,线性表的顺序存储结构特点: (1)线性表中所有元素所占的存储空间是连续的; (2)线性表
10、中各数据元素在存储空间中是按逻辑顺序依次存放的。在程序设计语言中用一维数组来表示线性表的顺序存储空间。,第三节 线性表,1.可以随机存取,2.空间利用率高,3.结构简单,-,考点8 线性表的插入运算在长度为n的线性表L的第i个位置上插入一个新的数据元素X,第三节 线性表,1.将第i到n个元素依次后移一个位置,2.将新元素x放到线性表的第i个位置,3.将线性表的表长由n修改为n+1,-,插入运算时间复杂度分析:,第三节 线性表,-,(1) 在计算机中,算法是指_。 A. 查询方法B. 加工方法C. 解题方案的准确而完整的描述D. 排序方法 (2) 算法一般都可以用哪几种控制结构组合而成_。A.
11、循环、分支、递归B. 顺序、循环、嵌套C. 循环、递归、选择D. 顺序、选择、循环,复习题,C,D,-,(3) 一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是A) 有零个或多个输入 B) 有零个或多个输出 C) 有穷性 D) 可行性(4) 算法分析的目的是_。 A. 找出数据结构的合理性B. 找出算法中输入和输出之间的关系C. 分析算法的易懂性和可靠性D. 分析算法的效率以求改进,D,B,-,(5) 算法的时间复杂度是指_。A. 执行算法程序所需要的时间B. 算法程序的长度C. 算法执行过程中所需要的基本运算次数D. 算法程序中的指令条数 (6) 算法的空间复杂度是指
12、_。A. 算法程序的长度B. 算法程序中的指令条数C. 算法程序所占的存储空间D. 算法执行过程中所需要的存储空间,C,D,-,(7)下列对于线性表的描述中正确的是 A)存储空间不一定是连续,且各元素的存储顺序是任意的 B)存储空间不一定是连续,且前件元素一定存储在后件元素的前面 C)存储空间必须连续,且各前件元素一定存储在后件元素的前面 D)存储空间必须连续,且各元素的存储顺序是任意的,A,-,(8)数据结构中,与所使用的计算机无关的是数据的A)存储结构 B)物理结构C)逻辑结构 D)物理和存储结构,C,-,(1)数据结构分为逻辑结构与存储结构,线性链表属于 【1】 。,1.存储结构解析:
13、数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构;数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式。在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。,-,Pi ( i = 1 , 2 , , n , n+1 ) (其中pi=1/(n+1)) T= Pi(n-i+1) = (n-i+1)/(n+1) = n/2,对于长度为n的顺序存储的线性表,当随机插入和删除一个元素时,需要平均移动元素的个数为多少?,-,考点9 线性表的删除运算线性表的删除运算是指将表的第i(1in)个结点删除,第三节 线性表,1.将第i+1到n个元素依次前移一个位置
14、,2.将线性表的表长由n修改为n-1,-,删除时间复杂度分析:,第三节 线性表,-,线性表的顺序存储结构的缺点(补充),1. 缺点:,2. 解决方案,(1) 需要一片地址连续的存储空间;,(2)插入和删除元素时不方便,大量的时间用在元素的搬家;,(1)对线性表的插入和删除运算进行限定,(2) 采用其它的存储结构(链式存储),(3)在预分配存储空间时,可能造成空间的浪费;,(4)表的容量难以扩充。,-,第四节 栈和队列,1.4 栈和队列,1.4.1 考点10 栈及其基本运算 1. 栈的定义 : 限定在一端进行插入与删除的线性表。 允许进行插入和删除操作的一端叫栈顶,不允许插入(入栈)和删除(出栈
15、)的一端叫栈底。没有元素的栈叫空栈。,若给定栈S=(a1,a2, ,an),则a1是栈底元素,an是栈顶元素,表中元素按a1,a2, ,an顺序进栈,按an, ,a2,a1顺序出栈。通常把栈称为先进后出的线性表。因此栈中数据元素的逻辑关系是先进后出(FILO)或后进先出。,-,第四节 栈和队列,2. 栈的顺序存储及其运算 : 在程序设计语言中,用一维数组作为栈的顺序存储空间。,-,第四节 栈和队列,(l)入栈运算: 入栈运算是指在栈顶位置插入一个新元素。首先将栈顶指针加一(即top加1),然后将元素插入到栈顶指针指向的位置。当栈顶指针已经指向存储空间的最后一个位置时,说明栈空间已满,不可能再进
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 算法 课件
链接地址:https://www.31ppt.com/p-1452894.html