[PPT模板]数据结构讲义严蔚敏13章02201517.ppt
《[PPT模板]数据结构讲义严蔚敏13章02201517.ppt》由会员分享,可在线阅读,更多相关《[PPT模板]数据结构讲义严蔚敏13章02201517.ppt(125页珍藏版)》请在三一办公上搜索。
1、复制!数据结构习题集_徐昊郭威_20110220.doc张胜兰 数据结构上机讲义.rar,数 据 结 构,胡东红 QQ:1055908606湖北大学 物理学与电子技术学院,课程教学目的和任务:数据结构是电子信息工程专业的专业课程之一。通过本课程的学习,要求学生掌握数据结构的基本知识和数据结构程序设计的基本方法。教学方法:讲授、自学、课堂讨论、实验等多种形式相结合。先修课程及相关课程:本课程是在学习了一定的计算机基础、计算机语言等课程。总学时及学时分配建议表:总学时54学时。,学时分配建议,1 绪论 42 线性表 83 栈和队列 64 串 65 树和二叉树 86 图 67.复习 28.上机 12
2、,参考文献,数字图像处理与分析(张弘 机械工业出版社)光盘 VC+代码上机讲义习题集,第1章 绪 论,计算机的应用已不再局限于科学计算,而更多地用于控制、管理及数据处理等非数值计算的处理工作。1.1 什么是数据结构首先要从具体问题抽象出一个适当的数据模型,然后设计一个解此数学模型的算法,最后编出程序、进行测试、调整直至得到最终的解答。,例1-1 图书馆的书目检索系统自动化问题最简单的线性关系,1.1 什么是数据结构,图1.1 图书目录文件示范,“树”可以是某些非数值计算问题的数学模型,它也是一种数据结构。,图1.2 井字棋对奕“树”(a)棋盘格局示例;(b)对奕树局部。,例12 计算机和人对弈
3、问题,这类交通、道路问题的数学模型是一种称谓“图”的数据结构。顶点代表通路顶点间的连线代表通路相互矛盾,例1-3 多叉路口交通灯的管理问题,数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等等的学科。数据结构是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。,数学代数系统,编码理论,算子关系,数据类型,数据表示法,数据的运算,数据结构数据存取机器组织,文件系统组织数据信息检索,软件(计算机程序设计),存储装置,硬件(计算机系统设计),图1.4“数据结构”所处的地位,1.2 基本概念和术语数据(Data)数据元素(Data Element)数据对象(D
4、ata Object)数据结构(Data Structure)数据元素相互之间的关系称为结构(Structure),1.2 基本概念和术语,四类基本结构:集合线性结构树形结构图状结构或网状结构,1.2 基本概念和术语,数据结构的形式定义为:数据结构是一个二元组 Data_Structure=(D,S)(1-1)其中:D是数据元素的有限集,S是D上关系的有限集。例1-4 复数是一种数据结构 Complex=(C,R)(1-2)其中:C是含两个实数的集合c1,c2;R=P,而P是定义在集合C上的一种关系表示c1是复数的实部,c2是复数的虚部。,1.2 基本概念和术语,例1-5 课题小组:1位教师、
5、13名研究生及16名本科生。教师指导研究生,每位研究生指导12名本科生。定义数据结构:Group=(P,R)(1-3)其中:,1.2 基本概念和术语,逻辑结构物理结构,又称存储结构位(bit)元素(Element)或者结点(Node)数据域(Data Field)顺序映象非顺序映象两种不同的存储结构:顺序结构和链式存储结构指针,1.2 基本概念和术语,0300,0320,0632,0634,0415,0611,0613,图1.6 复数z1=3.0-2.3iz2=-0.7+4.8i存储结构示意图,(a)顺序存储结构;,(b)链式存储结构,数据类型(Data Type)是一个值的集合和定义在这个值
6、集上的一组操作的总称。抽象数据类型(Abstract Data Type)是指一个数学模型以及定义在该模型上的一组操作。一个含抽象数据类型的软件模块通常应包含定义、表示和实现三个部分。抽象数据类型可用三元组表示(D,S,P)其中D是数据对象,S是D上的关系集,P是对D的基本操作集。,1.2 基本概念和术语,ADT抽象数据类型名 数据对象:(数据对象定义)数据关系:(数据关系的定义)基本操作:(基本操作的定义)ADT抽象数据类型名基本操作名(参数表)初始条件:(初始条件描述)操作结果:(操作结果描述),ADT Triplet 数据对象:数据关系:基本操作:InitTriplet(&T,v1,v2
7、,v3)DestroyTriplet(&T)Get(T,i,&e)Put(&T,i,e)IsAscending(T)IsDescending(T)Max(T,&e)Min(T,&e)ADT Triplet多形数据类型:是指其值的成分不确定的数据类型。,例1-6 抽象数据类型三元组的定义:,1.3 抽象数据类型的表示和实现,C语言的核心子集若干扩充修改预定义常量和类型#define TRUE 1类型定义 typedef 函数描述赋值语句选择语句循环语句结束语句输入输出语句注释基本函数逻辑运算,例1-7 抽象数据类型Triplet的表示和实现typedef ElemType*Triplet;/由I
8、nitTriplet分配三个元素存储空间/-基本操作的函数原型说明-Status InitTriplet(Triplet/初始条件:三元组已经存在,1 i 3。/操作结果:改变T的第i元的值为e。,1.3 抽象数据类型的表示和实现,1.3 抽象数据类型的表示和实现,Status IsAscending(Triplet T);/初始条件:三元组已经存在。/操作结果:如果T的3个元素按升序排列,则返回1,否则返回0。Status IsDescending(Triplet T);/初始条件:三元组已经存在。/操作结果:如果T的3个元素按降序排列,则返回1,否则返回0。Status Max(Tripl
9、et T,ElemType/初始条件:三元组已经存在。/操作结果:用e返回T的3个元素中的最小值。,/-基本操作的实现-Status InitTriplet(Triplet/InitTriplet,1.3 抽象数据类型的表示和实现,Status DestroyTriplet(Triplet/DestroyTriplet,1.3 抽象数据类型的表示和实现,1.3 抽象数据类型的表示和实现,Status Get(Triplet/Get,1.3 抽象数据类型的表示和实现,Status Put(Triplet T,int i,ElemType e)/1 i 3,置T的第i元的值为e。if(i3)ret
10、urn ERROR;Ti-1=e;return OK;/Put,1.3 抽象数据类型的表示和实现,Status IsAscending(Triplet T)/如果T的3个元素按升序排列,则返回1,/否则返回0。return(T0=T1)/IsAscending,1.3 抽象数据类型的表示和实现,Status IsDescending(Triplet T);/如果T的3个元素按降序排列,则返回1,/否则返回0。return(T0=T1)/IsDescending,1.3 抽象数据类型的表示和实现,Status Max(Triplet T,ElemType/Max 注释:I=(32?1:0),1.
11、3 抽象数据类型的表示和实现,Status Min(Triplet T,ElemType/Min,1.4.1 算法 算法(Algorithm)是对待定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作;算法的5个重要特性:有穷性确定性可行性输入输出,1.4 算法和算法分析,正确性可读性健壮性效率与低存储要求,1.4.2 算法设计的要求,度量一个程序的执行时间通常有两种方法:事后统计的方法;事前分析估算的方法:两个NN矩阵相乘的问题for(i=1;i=n;+i)for(j=1;j=n;+j)ci,j=0;for(k=1;k=n;k+)ci,j+=ai,k*bk,j;整个
12、算法的执行时间与该基本操作(乘法)重复执行的次数n3成正比,记做T(n)=O(n3),1.4.3 算法效率的度量,图1.7 常见函数的增长率,一般情况下,算法中基本操作重复执行的次数是问题规模 n的某个函数f(n),算法的时间量度记作T(n)=O(f(n)(1-5)它表示随时间规模 n 的增大,算法执行时间的增长率和 f(n)的增长率相同,称作算法的渐近时间复杂度(Asymptotic Time Complexity),简称时间复杂度。,1.4.3 算法效率的度量,+x;s=0;for(i=1;i=n;+i)+x;s+=x;for(j=1;j=n;+j)for(k=1;k=n;+k)+x;s+
13、=x;这三个程序段的时间复杂度分别为O(1),O(n)和O(n2),分别称为常量阶、线性阶和平方阶。,1.4.3 算法效率的度量,空间复杂度(Space Complex)作为算法所需存储空间的度量,记作 S(n)=O(f(n)若额外空间相对于输入数据量来说是常数,则称此算法为原地工作,1.4.4 算法的存储空间需求,第二章 线 性 表,线性结构的特点是:在数据元素的非空有限集中:存在唯一的一个被称做“第一个”的数据元素;存在唯一的一个被称做“最后一个”是数据元素;除第一个之外,集合中的每个数据元素均只有一个前驱;除最后一个之外,集合中每个数据元素均只有一个后继。,2.1 线性表的类型定义,线性
14、表数据项记录文件,图2.1 学生健康情况登记表,将线性表记为直接前驱元素直接后继元素线性表长度空表位序,2.1 线性表的类型定义,抽象数据类型线性表的定义如下:ADT List 数据对象:数据关系:基本操作:InitList(&L)操作结果:构造一个空的线性表L。DestroyList(&L)初始条件:线性表L已存在。操作结果:销毁线性表L。ClearList(&L)初始条件:线性表L已存在。操作结果:将L重置为空表。ListEmpty(L)初始条件:线性表L已存在。操作结果:若L为空表,则返回TRUE,否则返回FALSE。,2.1 线性表的类型定义,2.1 线性表的类型定义,ListLeng
15、th(L)初始条件:线性表L已存在。操作结果:返回L中数据元素个数。GetElem(L,i,&e)初始条件:线性表L已存在。1i ListLength(L)。操作结果:用e返回L中第i个数据元素的值。LocateElem(L,e,compare()初始条件:线性表L已存在。compare()是数据元素判定函数。操作结果:返回L中第1个与e满足关系compare()的数据元素的位序。若这样的数据元素不存在,则返回值为0.PriorElem(L,cur_e,&pre_e)初始条件:线性表L已存在。操作结果:若cur_e是L的数据元素,且不是第一个,则用pre_e返回它的前驱,否则操作失败,pre_
16、e无定义。,2.1 线性表的类型定义,NextElem(L,cur_e,&next_e)初始条件:线性表L已存在。操作结果:若cur_e是L的数据元素,且不是第一个,则用next_e返回它的后继,否则操作失败,next_e无定义。ListInsert(&L,i,e)初始条件:线性表L已存在,1i ListLength(L)+1.操作结果:在L中第i个位置之前插入新的数据元素e,L的长度加1.ListDelete(&L,i,&e)初始条件:线性表L已存在且非空,1i ListLength(L).操作结果:删除L的第i个数据元素,并用e返回其值,L的长度减1.ListTraverse(L,visi
17、t()初始条件:线性表L已存在.操作结果:依次对L的每个数据元素调用函数visit()。一旦visit()失败,则操作失败。ADT List,例2-1 合并两个线性表,void union(List/数据元素,则插入之/union算法2.1的时间复杂度为O(ListLength(LA)*ListLength(LB),例2-2 算法2.2 按值非递减有序排列,void MergeList(List La,List Lb,List/MergeList,例2-2 按值非递减有序排列 算法2.2,void MergeList(List La,List Lb,List/MergeList,2.2 线性表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PPT模板 PPT 模板 数据结构 讲义 严蔚敏 13 02201517
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-4595488.html