数据结构与算法ppt课件.ppt
《数据结构与算法ppt课件.ppt》由会员分享,可在线阅读,更多相关《数据结构与算法ppt课件.ppt(46页珍藏版)》请在三一办公上搜索。
1、,公共基础知识部分之,第一章 数据结构与算法,1.1 算法1.2 数据结构的基本概念1.3 线性表及其顺序存储结构1.4 栈和队列1.5 线性链表1.6 树与二叉树1.7 查找技术1.8 排序技术,1.1.1 算法的基本概念 所谓算法是指解题方案的准确而完整的描述。,1.1 算法,1、算法的基本特征可行性:算法原则上能够精确地执行,甚至人们只用笔和纸做有限次运算即可完成。确定性:算法的每一步都必须有确切的定义有穷性:一个算法必须在执行有穷步后结束,即算法必须能够终止拥有足够的情报:我们要使算法有效就必须拥有足够的情报,2、算法的基本要素数据对象的运算和操作A.算术运算(+、-、*、/)B.逻辑
2、运算(&、|、!)C.关系运算(、算法的控制结构一个算法一般都可以用顺序、选择、循环三种基本控制结构组合而成。,3、算法设计基本方法列举法:指针对待解决的问题,列举所有可能的情况,并用问题中给定的条件来检验。归纳法:特殊一般的抽象过程递推:从已知初始条件出发,逐次推出所要求的各中间结构和最后结果递归:将复杂的问题逐层分解,最后归结为一个简单的问题,再沿原分解的逆过程逐步进行综合。分为直接递归和间接递归减半递推技术:把规模较大较复杂的问题,分成几个规模较小较简单的问题回溯法:通过对问题的分析,找出一个解决问题的线索,多次试探,若成功,则得出解,若失败,则回退,换别的路线再进行试探,1.1.2 算
3、法复杂度,算法的复杂度主要包括时间复杂度和空间复杂度。两者之间没有必然的联系。1、算法的时间复杂度 指执行算法所需要的计算工作量。工作量可以用算法在执行过程中所需基本运算的执行次数来度量。其中基本运算次数是问题规模的函数,即 算法的工作量=f(n)。平均性态最坏情况复杂性注意:算法程序执行的具体时间受使用计算机、程序设计语言以及算法实现过程中的许多细节的影响。而算法的时间复杂度与此无关,2、算法的空间复杂度 指执行这个算法所需要的内存空间,包含:算法程序所占的空间输入的初始数据所占的空间算法执行过程中所需要的额外空间,1.2 数据结构的基本概念,数据结构作为计算机的一门学科,主要研究以下三个方
4、面的问题:(1)数据的逻辑结构(2)数据的存储结构(物理结构)(3)对各种数据结构进行的运算数据结构学科的研究目的:提高数据处理的效率。主要包括1、数据的处理速度2、尽量节省在数据处理过程中所占用的计算机存储空间,1.2.1 数据结构的定义 数据处理:是指对数据集合中的各元素以各种形式进行运算。包括插入、删除、查找、更改等运算,也包括对数据元素进行分析。数据元素:在数据处理领域中,每一个需要处理的对象都可以抽象为数据元素。数据结构:是指反映数据元素之间关系的数据元素集合的表示。数据元素之间的任何关系都可以用前后件关系来描述。,1、数据的逻辑结构 所谓逻辑结构实际上就是指数据元素之间的前后件关系
5、。其中前后件关系是指它们的逻辑关系,而与他们在计算机中的存储位置无关。它包含两个要素:数据元素的集合,通常记为D;数据元素之间的关系(前后件关系),通常记为R。形式表示如下:B=(D,R)其中B表示数据结构,2、数据的存储结构 数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(即数据的物理结构)。常用的存储结构有顺序、链接、索引等存储结构。,1.2.2 数据结构的图形表示 图形表示方法:对于数据集合D中的每一个数据元素用中间标有元素值的方框表示,一般称为数据结点,简称结点,对关系R中每一个二元组,用一条有向线段从前件指向后件结点,以表示数据之间的前后件关系。,春,夏,冬,秋,父亲,
6、儿子,女儿,图1.2 一年四季数据结构的图形表示,图1.3 家庭成员辈分关系的数据结构的图形表示,例1.2 用图形表示数据结构B=(D,R),其中:D=di|1=i=6=d1,d2,d3,d4,d5,d6 R=(d1,d2),(d1,d3),(d3,d4),(d5,d4),(d5,d6),d1,d3,d5,d2,d6,d4,图1.4 数据结构的图形表示,1.2.3 线性结构与非线性结构 如果一个数据结构中一个数据元素都没有,则称为数据结构为空的数据结构。在一个空的数据结构中插入一个元素后就变成了非空。根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为两大类:线性结构(又称为线
7、性表)非线性结构线性结构满足如下两个条件:(1)、有且只有一个根结点;(2)、每一个结点最多有一个前件,也最对多有一个后件。在一个线性结构中插入或删除任何一个结点还是线性结构常见的线性结构:线性表、栈、队列、线性链表常见的非线性结构:树、二叉树、图,1.3 线性表及其顺序存储结构,1.3.1 线性表的基本概念 线性表是n个元素的有限序列,它们之间的关系可以排成一个线性序列:a1,a2,ai,an其中n称作表的长度,当n=0时,称作空表。n(n=0),表中的每一个数据元素,除了第一个外,有且只有一个前件,除了最后一个外,有且只有一个后件。,1.3.2 线性表的顺序存储结构 线性表的顺序存储结构有
8、以下两个基本特点:(1)线性表中所有元素所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依 次存放的。逻辑上相邻的结点,物理位置上也相邻 在程序设计语言中,通常定义一个一维数组来表示线性表的顺序存储空间,该一维数组的长度通常要定义得比线性表的实际长度大一些,以便对线性表进行各种运算,特别是插入运算。线性表的主要操作有:(1)插入、(2)删除、(3)查找、(4)排序、(5)分解、(6)合并、(7)复制、(8)逆转。,元素an,.,元素ai,.,元素a2,元素a1,b,b+m,b+(i-1)*m,b+(maxlen-1)*m,存储地址,内存状态,Loc(元素i)=b+(i-
9、1)*m,顺序存储结构示意图(顺序表):,首地址起始地址基地址,每个元素所占用的存储单元个数,1.4 栈和队列,1.4.1 栈及其基本运算 1、栈(stack)的定义栈是限定在一端进行插入和删除的线性表。性质:a.按照“先进后出”(FILO first in last out)或“后进先出”(LIFOlast in first out)的原则组织数据。b.通常用指针top来指示栈顶的位置,用指针bottom指向栈底。c.当表中没有元素时称栈为空栈d.栈具有记忆功能e.往栈中插入一个元素称为入栈运算,从栈中删除一个元素(即删除栈顶元素)称为退栈运算。Top栈顶指针反映了栈中元素的变化,2、栈的顺
10、序存储及其运算 在程序设计语言中,一般用一维数组S(1:m)作为栈的顺序存储空间,其中m为栈的最大容量。在S(1:m)中,S(bottom)通常为栈底元素(在栈非空的情况下),S(top)为栈顶元素。top=0表示栈空;top=m表示栈满。栈的基本运算有3种:入栈运算退栈运算读栈顶元素,栈中的运算:1.设置空栈;2.插入一个新的栈顶元素 3.删除栈顶元素;4.读取栈顶元素。,1.4.2 队列及其基本运算 1、队列(queue)的定义 队列是允许在一端(队尾rear)进行插入、而在另一端(队头front)进行删除的线性表。它按照“先进先出”(FIFO first in first out)或“后
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 算法 ppt 课件

链接地址:https://www.31ppt.com/p-5355756.html