等级考基础数据结构精选PPT.ppt
《等级考基础数据结构精选PPT.ppt》由会员分享,可在线阅读,更多相关《等级考基础数据结构精选PPT.ppt(113页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、等级考基础数据结构第1页,此课件共113页哦1.1 数据结构的研究对象数据结构的研究对象数据结构的研究内容:数据结构的研究内容:非数值数据之间的结构关系,非数值数据之间的结构关系,及如何表示,如何存储,如何处理。及如何表示,如何存储,如何处理。归纳为三部分:逻辑结构、存储结构和运算集合。归纳为三部分:逻辑结构、存储结构和运算集合。按某种逻辑关系把一批数据组织起来,按某种逻辑关系把一批数据组织起来,按一定的映象方式把它存放在计算机的存储器中,按一定的映象方式把它存放在计算机的存储器中,并在这些数据上定义一个运算的集合。并在这些数据上定义一个运算的集合。第2页,此课件共113页哦 逻辑结构是数据结
2、构的抽象,存储结构是数据结构的实现逻辑结构是数据结构的抽象,存储结构是数据结构的实现存储结构的二种类型存储结构的二种类型:顺序存储结构顺序存储结构通过在存储器中的相对位置,通过在存储器中的相对位置,表示数据的逻辑结构。表示数据的逻辑结构。非顺序存储结构(链式存储结构)非顺序存储结构(链式存储结构)-由指针表示数据间的逻辑关系。由指针表示数据间的逻辑关系。第3页,此课件共113页哦第4页,此课件共113页哦1.3常用的数据结构常用的数据结构 (1)线性结构:结构中的数据元素之间存在着一对一的线性关系。线性表、栈、队、字符串、数组 (2)树形结构:结构中的数据元素之间存在着一对多的层次关系。-非线
3、性结构 (3)图状结构或网状结构:结构中的数据元素之间存在着多对多的任意关系。-非线性结构第5页,此课件共113页哦14 算法与算法分析 1.4 1.4 算法与算法分析算法与算法分析一一 算法的概念算法的概念 算法是对特定问题求解步骤的一种描述算法是对特定问题求解步骤的一种描述 算法的基本特征:算法的基本特征:1 1)可行性:组成算法的操作必须能够在计算机上实现。)可行性:组成算法的操作必须能够在计算机上实现。2 2)确定性:算法的每一步操作必须清晰无二义性。)确定性:算法的每一步操作必须清晰无二义性。3 3)有穷性:算法必须在有限步内结束;)有穷性:算法必须在有限步内结束;4 4)有足够的情
4、报:)有足够的情报:0 0个或多个输入;个或多个输入;1 1个或多个输出;个或多个输出;算法描述的方法很多,如自然语言、框图、类算法描述的方法很多,如自然语言、框图、类C C等等例例:求两个正整数求两个正整数 m m,n n 中的最大数中的最大数MAXMAX的算法的算法 (1 1)若若 m n m n 则则 max=mmax=m (2 2)若若 m=n m=n 则则 max=nmax=n 第6页,此课件共113页哦1、正确性:、正确性:(1)没有语法错误;(2)对于几组输入数据能够得出满足要求的结果;(3)对于精心选择的典型而苛刻的几组输入数据能够得到满足要求的结果。(4)对于一切合法的输入数
5、据都能产生满足要求的结果。2、可读性:、可读性:便于阅读、理解、调试、修改;3、健壮性:、健壮性:对不合法的输入能作出正确的反映与处理;4、高效性:、高效性:执行时间短(时间复杂度时间复杂度)、需求存储空间省(空间复杂度空间复杂度)评价算法标准评价算法标准第7页,此课件共113页哦1时间复杂度时间复杂度T(n)以求解问题的基本操作的执行次数作为算法时间的度量。以求解问题的基本操作的执行次数作为算法时间的度量。14 算法与算法分析O(n3)称为矩阵相乘算法时间复杂度;称为矩阵相乘算法时间复杂度;O(n3)表示矩阵相乘算法执行时间与)表示矩阵相乘算法执行时间与n3成正比成正比,即即O(n3)与)与
6、n3同一数量级;同一数量级;例例n阶矩阶矩阵相乘的算法阵相乘的算法For(i=1;i=n;i+)For(j=1;j=n;j+)cij=0;For(k=1;k=n;k+)cij+=aik*bkj 乘法乘法加法加法执行次数均为执行次数均为n3 矩阵相乘的基本运算:乘法矩阵相乘的基本运算:乘法加法;加法;第8页,此课件共113页哦数据结构中常用的时间复杂度频率计数有数据结构中常用的时间复杂度频率计数有7个:个:O(1)常数型常数型O(n)线性型线性型O(n2)平方型平方型O(n3)立方型立方型O(2n)指数型指数型O(log2n)对数型对数型O(nlog2n)二维型二维型第9页,此课件共113页哦
7、14 算法与算法分析2算法空间复杂度算法空间复杂度用执行算法所需的辅助空间的大小作为算法所需空间的度量。用执行算法所需的辅助空间的大小作为算法所需空间的度量。设执行算法所需的辅助空间是问题规模设执行算法所需的辅助空间是问题规模n的某个函数的某个函数g(n),则算法空间复杂则算法空间复杂度记作:度记作:S(n)=O(g(n)表示算法辅助空间的增长率表示算法辅助空间的增长率与与g(n)的增长率相同的增长率相同例计算例计算解法解法1先计算先计算x的幂的幂,存于存于power中中,再分别乘以相应的系数再分别乘以相应的系数#defineN100floatevaluate(floatcoef,floatx
8、,intn)floatpowerN,f;inti;for(power0=1,i=1;i=n;i+)poweri=x*poweri-1;for(f=0,i=0;ideta=a;q-next=p-next;p-next=q;headheadzyxp pyxzp pheadheada q q第24页,此课件共113页哦插入操作功能:在线性链表的第插入操作功能:在线性链表的第i个元素结点之前插入一个新元个元素结点之前插入一个新元素结点素结点e;插入操作图示:2.3.1 线性链表插入前插入后 ai-1aia2a1ai+1nanheadheadai-1aia2a1ai+1naneheadhead第25页,
9、此课件共113页哦 4)删除结点删除结点q=p-next;p-next=q-next;free(q);headheadzyxq qyxzq qheadheadp pp p第26页,此课件共113页哦 2.3.1 线性链表删除前删除后ai-1aia2a1ai+1nanheadheadai-1aia2a1ai+1nanheadp pp pq qq q第27页,此课件共113页哦2.3.1 线性链表小结线性链表是线性表的一种链式存储结构 线性链表的特点 1 通过保存直接后继元素的存储位置来表示 数据元素之间的逻辑关系;2 插入、删除操作通过修改结点的指针实现;3 不能随机存取元素;第28页,此课件共
10、113页哦1循环链表的概念循环链表的概念循环链表的特点是将线性链表的最后一个结点的指针指向循环链表的特点是将线性链表的最后一个结点的指针指向链表的第一个结点(首尾相连的单链表)链表的第一个结点(首尾相连的单链表)2循环链表图示循环链表图示2.3.2 循环链表(a)非空表 (b)空表headheadheadheada1an第29页,此课件共113页哦循环链表说明 在解决某些实际问题时循环链表可能要比线性链表方在解决某些实际问题时循环链表可能要比线性链表方便些。如将一个链表链在另一个链表的后面;便些。如将一个链表链在另一个链表的后面;对循环链表,有时不给出头指针,而是给出尾指针对循环链表,有时不给
11、出头指针,而是给出尾指针a aa1ana-next给出尾指针的循环链表第30页,此课件共113页哦2.3.4双向链表双向链表循循环环单单链链表表,虽虽然然从从任任一一结结点点出出发发沿沿着着指指针针链链能能找找到到其其前前件件,但但时时间间耗耗费费是是O(n)。如如果果希希望望从从表表中中快快速速确确定定某某一一个个结结点点的的前前件件,另另一一个个解解决决方方法法是是在在链链表表的的每每个个结结点点里里再再增增加加一一个个指指向向其其前前件件的的指指针针域域prior。这样形成的链表中就有两条方向不同的链,称为双向链表。这样形成的链表中就有两条方向不同的链,称为双向链表。第31页,此课件共1
12、13页哦B例例:线性表的顺序存储结构和线性表的链式存储结线性表的顺序存储结构和线性表的链式存储结构分别是构分别是?A)顺序存取的存储结构、顺序存取的存储结构顺序存取的存储结构、顺序存取的存储结构B)随机存取的存储结构、顺序存取的存储结构随机存取的存储结构、顺序存取的存储结构C)随机存取的存储结构、随机存取的存储结构随机存取的存储结构、随机存取的存储结构D)任意存取的存储结构、任意存取的存储结构任意存取的存储结构、任意存取的存储结构第32页,此课件共113页哦例例:链表不具有的特点是链表不具有的特点是A)不必事先估计存储空间不必事先估计存储空间B)可随机访问任一元素可随机访问任一元素C)插入删除
13、不需要移动元素插入删除不需要移动元素D)所需空间与线性表长度成正比所需空间与线性表长度成正比B第33页,此课件共113页哦例例:数数据据结结构构分分为为逻逻辑辑结结构构和和存存储储结结构构,循循环环队队列属于列属于【5】结构。结构。存储结构第34页,此课件共113页哦在单链表中,增加头结点的目的是在单链表中,增加头结点的目的是A)方便运算的实现方便运算的实现B)使单链表至少有一个结点使单链表至少有一个结点C)标识表结点中首结点的位置标识表结点中首结点的位置D)说明单链表是线性表的链式存储实现说明单链表是线性表的链式存储实现A第35页,此课件共113页哦线性表小结线性表小结线性表的顺序存储结构线
14、性表的顺序存储结构顺序表,顺序表,链式存储结构链式存储结构-线性链表线性链表,循环链表循环链表,双向链双向链表表.不同的存储结构,线性表的同一操作的算不同的存储结构,线性表的同一操作的算法是不同的法是不同的:在顺序存储结构下,线性表的插入、删除在顺序存储结构下,线性表的插入、删除操作,通过移动元素实现操作,通过移动元素实现;在线性链表存储结构下,线性表的插入、在线性链表存储结构下,线性表的插入、删除操作,通过修改指针实现。删除操作,通过修改指针实现。第36页,此课件共113页哦3.1 栈栈是限定仅能在表尾一端进行插入、删除操栈是限定仅能在表尾一端进行插入、删除操作的线性表作的线性表(a1,a2
15、,.,ai-1,ai,ai+1,an)插入删除3.1.1栈的概念栈的概念一一什么是栈什么是栈?第37页,此课件共113页哦3.1栈栈将表中允许进行插入、删除操作的一端称为栈顶将表中允许进行插入、删除操作的一端称为栈顶(Top),栈顶的当前位置是动态变化的,由一个栈顶指针指示其位置。栈顶的当前位置是动态变化的,由一个栈顶指针指示其位置。表的另一端称为栈底表的另一端称为栈底(Bottom)。当栈中没有元素时称为空栈。当栈中没有元素时称为空栈。栈的插入操作称为进栈或入栈,删除操作称为出栈或退栈。栈的插入操作称为进栈或入栈,删除操作称为出栈或退栈。第38页,此课件共113页哦栈栈第39页,此课件共11
16、3页哦3.1 栈栈的示意图栈的示意图出栈出栈进栈进栈栈的特点栈的特点后进先出后进先出第一个进栈的元素在栈底,第一个进栈的元素在栈底,最后一个进栈的元素在栈顶,最后一个进栈的元素在栈顶,第一个出栈的元素为栈顶元素,第一个出栈的元素为栈顶元素,最后一个出栈的元素为栈底元素最后一个出栈的元素为栈底元素栈栈顶顶栈栈底底ana2a1第40页,此课件共113页哦B例例:如果进栈序列为如果进栈序列为e1,e2,e3,e4,则可能的出,则可能的出栈序列是栈序列是?A)e3,e1,e4,e2B)e2,e4,e3,e1C)e3,e4,e1,e2D)任意顺序任意顺序第41页,此课件共113页哦例例:栈和队列的共同特
17、点是栈和队列的共同特点是A)都是先进先出都是先进先出B)都是先进后出都是先进后出C)只允许在端点处插入和删除元素只允许在端点处插入和删除元素D)没有共同点没有共同点C第42页,此课件共113页哦例例:下列关于栈的描述中错误的是下列关于栈的描述中错误的是A)栈是先进后出的线性表栈是先进后出的线性表B)栈只能顺序存储栈只能顺序存储C)栈具有记忆作用栈具有记忆作用D)对栈的插入与删除操作中,不需要改变栈底对栈的插入与删除操作中,不需要改变栈底指针指针B第43页,此课件共113页哦 小小 结结 1栈是限定仅能在表尾一端进行插入、栈是限定仅能在表尾一端进行插入、删除操作的线性表;删除操作的线性表;2栈的
18、元素具有后进先出的特点;栈的元素具有后进先出的特点;3栈顶元素的位置由一个称为栈顶指针的栈顶元素的位置由一个称为栈顶指针的变量指示,变量指示,进栈、出栈操作要修改栈顶指针;进栈、出栈操作要修改栈顶指针;3.1栈栈第44页,此课件共113页哦32队列队列3.2.1队列的概念队列的概念一一什么是队列什么是队列队列是限定仅能在表头进行删除,表尾进行插入的线性表队列是限定仅能在表头进行删除,表尾进行插入的线性表(a1,a2,.,ai-1,ai,ai+1,an)插入插入删除删除第45页,此课件共113页哦33队列队列 a a1 1 a a2 2 a a3 3 a an n入队列入队列队队头头队队尾尾出队
19、列出队列队队 列列 的的 示示 意意 图图队列的特点队列的特点先进先出先进先出第一个入队的元素在队头,第一个入队的元素在队头,最后一个入队的元素在队尾,最后一个入队的元素在队尾,第一个出队的元素为队头元素,第一个出队的元素为队头元素,最后一个出队的元素为队尾元素最后一个出队的元素为队尾元素第46页,此课件共113页哦rearrearfrontfrontJ1rearrearfrontfrontJ2(a)a)空队列空队列(b)J1,J2(b)J1,J2相继入相继入队列队列(c)J1(c)J1出队出队(d)J3,J4,J5(d)J3,J4,J5和和J6J6相继入队之后相继入队之后,J2,J2出出队队
20、rearrearfrontfront0 01 12 23 34 45 53.3 队列rearrearfrontfrontJ5J4J3front,rearfront,rear为为整数整数又有又有J7入队入队,怎么办?怎么办?J2J6第47页,此课件共113页哦3.3队列队列3.循环队列循环队列frontfrontrearJ6J6J4J4J5J53 124 05rearrear54 03 12frontfrontJ6J6J7J7J8J8J9J9J4J4J5J5frontfrontrearrear54 03 12(b)(b)队空队空(a)(a)队满队满J7J7rearrear第48页,此课件共113
21、页哦3.3队列队列判分队空、队满方法:判分队空、队满方法:1)另设一个标志)另设一个标志S以区分队空、队满。以区分队空、队满。2)S=0队空:队空:front=rear;S=1队满:队满:front=rear;frontfront54 03 12J6J6J7J7J8J8J4J4J5J5(c c)rearrear第49页,此课件共113页哦3.3队列队列入队操作入队操作:将元素将元素x插入队尾插入队尾 frontfrontrearrear54 03 12J1J1J3J3J2J2x xfrontfrontrearrear54 03 12J1J1J3J3J2J2元素元素 x x 入队前入队前元素元素
22、 x x 入队后入队后第50页,此课件共113页哦3.3队列队列出队操作出队操作:删除队头:删除队头元素;元素;frontfrontrearrear54 03 12J1J1J3J3J2J2出队操作前出队操作前frontfrontrearrear54 03 12J1J1J3J3J2J2出队操作后出队操作后第51页,此课件共113页哦 小小 结结 1队列是限定仅能在表尾一端进行插入,表头一端队列是限定仅能在表尾一端进行插入,表头一端删除删除操作的线性表;操作的线性表;2队列中的元素具有先进先出的特点;队列中的元素具有先进先出的特点;3队头、队尾元素的位置分别由称为队头指针和队尾指队头、队尾元素的位
23、置分别由称为队头指针和队尾指针的变量指示,针的变量指示,4入队操作要修改队尾指针,出队操作要修改队入队操作要修改队尾指针,出队操作要修改队头指针;头指针;第52页,此课件共113页哦树和二叉树 第53页,此课件共113页哦1树的定义树的定义 树是树是n个结点的有限集合个结点的有限集合T,当,当n=0时,称为空树;当时,称为空树;当n0时,时,T满足如满足如下条件:在任一棵非空树中:下条件:在任一棵非空树中:(1)有且仅有一个称为根的结点。)有且仅有一个称为根的结点。(2)其余结点可分为)其余结点可分为M个互不相交的子集合,而且这些子集中的个互不相交的子集合,而且这些子集中的每一个本身又是一棵树
24、,也称为根的子树。每一个本身又是一棵树,也称为根的子树。J JI IA AC CB BD DH HG GF FE EK KL LM M第54页,此课件共113页哦2树的实例树的实例树可表示具有分枝结构关系的对象树可表示具有分枝结构关系的对象例例1家族族谱家族族谱设某家庭有设某家庭有13个成员个成员A、B、C、D、E、F、G、H、I、J、K、L、M,他们之间的关系可用树表示:,他们之间的关系可用树表示:J JI IA AC CB BD DH HG GF FE EK KL LM M第55页,此课件共113页哦计算机中树是常用的数据组织形式计算机中树是常用的数据组织形式 尽管有些应用中数据元素之间并
25、不存在分支结构关系,但为了便于尽管有些应用中数据元素之间并不存在分支结构关系,但为了便于管理和使用数据,将它们用树的形式来组织。管理和使用数据,将它们用树的形式来组织。例例2计算机的文件系统计算机的文件系统不论是不论是DOS文件系统还是文件系统还是window文件系统,所有的文件都是用树的形式来文件系统,所有的文件都是用树的形式来组织的。组织的。文件夹文件夹1 1 文件夹文件夹n n 文件文件1 1 文件文件2 2文件夹文件夹11 11 文件夹文件夹12 12 文件文件11 11 文件文件1212C C盘盘第56页,此课件共113页哦3、树的、树的基本术语基本术语 树的结点:包含一个数据元素及
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 等级 基础 数据结构 精选 PPT
限制150内