实用数据结构电子教案第二章数组与线性表精.ppt
《实用数据结构电子教案第二章数组与线性表精.ppt》由会员分享,可在线阅读,更多相关《实用数据结构电子教案第二章数组与线性表精.ppt(58页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实用数据结构电子教案第二章数组与线性表第1页,本讲稿共58页第二章 数组与线性表 知 识 点 数组的基本特点及寻址方式线性数据结构的基本特征和基本运算堆栈的定义和基本运算队列的定义和基本运算循环队列的特征,运算以及判断溢出的条件与普通队列的差别堆栈、队列的简单应用 难 点 循环队列的特点及判断溢出的条件利用本章的基本知识设计有效的算法解决与线性相关的应用问题 第二章 数组与线性表第2页,本讲稿共58页要 求 熟练掌握以下内容:线性表的基本运算堆栈的特征、基本运算并能设计简单算法队列、循环队列的特征、基本运算并能设计简单算法 了解以下内容:线性表运算时间复杂性分析堆栈、队列实际应用 第二章 数组
2、与线性表第3页,本讲稿共58页第二章目录2.1 数组及其顺序存储结构2.2 线性表及其运算 2.3 堆栈及其应用2.4 队列及其应用2.5 应用实例及分析小 结习题与练习第二章 数组与线性表第4页,本讲稿共58页2.1.1 数组数组是由一些单元组成的,每个单元对应着一组下标值和一个数组元素。n维数组的每个单元对应n个下标值。数组元素可以是基本数据类型,如整数型、实数型、字符型等,也可以是有多个数据项的一种结构。同一数组中各个元素必须是同一数据类型,每个数组元素都占有相同数量的存储单元,才能用下标来唯一的确定数组中的元素。第二章 数组与线性表第5页,本讲稿共58页2.1.2 数组的顺序存储结构
3、在计算机中,表示数组是采用一组连续的存储单元顺序地存储各数组元素。可以用下标值随机的访问该数组的任意一个元素。计算数组元素存储地址的公式称为寻址公式。设数组为A,每个数组元素占s个存储单元,一旦定义了它的维数和各维的上、下界,就可以得到计算数组元素地址的寻址公式。第二章 数组与线性表第6页,本讲稿共58页1.一维数组寻址公式对于一维数组,若其下标的下界为LB,上界为UB,第一元素(其下标为LB)的地址为Loc(LB),下标为i的数组元素Ai的地址为Loc(i),则计算Loc(i)的寻址公式为:Loc(i)=Loc(LB)+(i-LB)*s 在C语言中,数组下标的下界为0,则数组中任意一元素Ai
4、的寻址公式为:Loc(i)=Loc(0)+i*s 0in-1 第二章 数组与线性表第7页,本讲稿共58页2.二维数组寻址公式在C语言中,采用矩阵元素以行为主存储,即同一行的元素连续存放,存储完一行再存储下一行。设二维数组Amn,m、n分别表示数组的行和列,用Loc(i,j)表示数组元素Aij的地址,每个单元占用s个存储单元,则寻址公式为:Loc(i,j)=Loc(0,0)+(i*n+j)*s 0im-1,0jn-1 第二章 数组与线性表第8页,本讲稿共58页定义一A23数组,对应的矩阵如下:数组元素A12,其下标i=1,j=2,故它前面已经有i=1行,每行有3个元素,另外本行有j=2个元素,所
5、以在元素A12之前,本数组已有5个元素。第二章 数组与线性表第9页,本讲稿共58页3.三维数组寻址公式三维数组Amnp可分解为p个m*n的二维数组。按行为主存储的数组元素Aijk的寻址公式为:Locijk=Loc000+(i*n*p+j*p+k)*s 0im-1,0jn-1,0pp-1 对于更多维的数组,数组元素在内存中的存储可以此类推。返回第二章 数组与线性表第10页,本讲稿共58页2.2.1 线性表(Linear List)线性表是由有限数目的相同类型元素组成的序列。表中的数据元素,除了第一个和最后一个以外,都有一个且只有一个前驱元素,同时也都有一个且只有一个后继元素;第一个元素只有一个后
6、继元素而无前驱元素;最后一个元素只有一个前驱元素而无后继元素。线性表的元素个数n称为这个表的长度,当n=0时,这个表叫做空表。第二章 数组与线性表第11页,本讲稿共58页线性表在计算机内存中采用各元素顺序存储的方式,这种存储结构叫做向量。每个线性表元素叫做这个向量的一个分量。如果已知线性表第一个元素的地址和每个元素占用的存储单元数,由任一元素的序号就可以计算出该元素在内存中的地址。在编程时以一维数组表示线性表最简单,用的也最普遍。第二章 数组与线性表第12页,本讲稿共58页2.2.2 线性表的运算对于给定的线性表,可进行如下的基本运算:1.求线性表的长度n;2.在第i个数据元素前面插入一个新的
7、数据元素;3.删除第i个数据元素;4.存取或更新线性表第i个元素;5.将两个或两个以上的线性表合并成一个线性表;6.将一个线性表拆成多个线性表;7.将线性表中各数据元素按某个域值(如关键字)递增或递减的顺序重新排列;8.在线性表中查找满足某种条件的数据元素;第二章 数组与线性表第13页,本讲稿共58页1.数据元素的插入(insert)设用一个一维数组An表示此线性表,原来有m个元素(mn),元素值已给定。规定数组的下标从1开始,即这里数据元素对应的数组下标从1到n。要求在第i个元素前插入一个新数据元素,值为G,因原线性表的数据元素是连续排列的,中间没有空单元,所以第i个元素及其后面的各元素均需
8、向后移动一个单元位置,这样才能将G插入到i位置,且元素总数由m增加为(m+1)。第二章 数组与线性表第14页,本讲稿共58页插入函数 void insert(A,int n,m,i,G)int j;if(in+1)printf(“i值错!n”);else for(j=m;j=i;j-)Aj+1=Aj;/*将第i个元素及其后面的元素后移*/Ai=G;m+;/*线性表长度加1*/第二章 数组与线性表第15页,本讲稿共58页插入函数分析在循环语句中,当i=1时,须循环m次,表示元素插入线性表头的前面,则原线性表中m个元素均须向后移动一个单元,这是最不利的情况。当i=m+1时,则循环一次也不进行,这时
9、元素直接插入到线性表尾的后面,所以线性表的所有m个元素均不移动,这是最好的情况。第二章 数组与线性表第16页,本讲稿共58页2.数据元素的删除(Delete)设用一个一维数组An表示此线性表,原来有n个元素,元素值已给定。要求删除第i个数据元素,由于线性表元素在数组中必须连续排列,中间不能有空单元,故将此元素删除后,它后面的所有元素都需要向前移动一个单元,且数据元素总数由原来的n减少到n-1.第二章 数组与线性表第17页,本讲稿共58页删除函数 void delete(A,int n,i)int j;if(in)printf(“i值错!n”);else for(j=i;j=n;j+)Aj=Aj
10、+1;n-;第二章 数组与线性表第18页,本讲稿共58页删除函数分析在循环语句中,当i=1时,需循环(n-1)次,这是要删除线性表表头元素,是最不利的情况;当i=n时,则循环一次也不执行,只是将元素数目n比原来减少一个,而第n个数据元素不必再考虑,其余的各单元的元素均维持不变,这是最好的情况。第二章 数组与线性表第19页,本讲稿共58页3.算法的时间复杂性 可以用数据元素的移动次数来度量这两个算法的时间复杂性。插入时,最少循环0次,最多循环n次,如i的各种取值概率相同,则平均循环次数为n/2;删除时最少的循环次数为0次,最多为n-1次,当i取值概率相同时,平均循环次数为(n-1)/2。用数量级
11、的形式表示线性表插入、删除运算的时间复杂性均为O(n)。返回第二章 数组与线性表第20页,本讲稿共58页2.3.1 堆栈(Stack)堆栈也简称为栈,是限定在表的一端进行插入或删除操作的线性表。进行插入或删除操作的一段称为栈顶(top),另一端称为栈底(bottom)。插入元素又称为入栈(push),删除元素操作称为出栈(pop)。不含元素的栈称为空栈。堆栈元素的插入和删除只在栈顶进行,总是后进去的元素先出来,所以堆栈又称为后进先出线性表或LIFO(Last-In-First-Out)表。第二章 数组与线性表第21页,本讲稿共58页堆栈的表示堆栈的最简单的表示方法是采用一维数组,为形象起见,一
12、般在图中将堆栈画成竖直的。设数组名为STACK,其下标的下界为1,上界为n。一般需用一个变量top记录当前栈顶的下标值,top也叫做栈指针。第二章 数组与线性表第22页,本讲稿共58页本例中top=4 topADCB4753216STACK第二章 数组与线性表第23页,本讲稿共58页1.入栈(push)入栈的主要操作是先将栈顶指针加1;然后将入栈元素放到栈顶指针所指示下标值的位置上。设用下标从1到n的数组ST表示堆栈,入栈的元素值为G,则可得到入栈函数如下:第二章 数组与线性表第24页,本讲稿共58页入栈函数 void push(ST,int n,top,G)if(top=n)printf(“
13、栈溢出!n”);/*显示栈满信息*/else top=top+1;STtop=G;第二章 数组与线性表第25页,本讲稿共58页2.出栈(Pop)出栈运算时,先将栈顶的元素值赋给某个变量,以备后面的运算应用;然后栈顶指针减1,将栈顶位置下移。假设已指定的变量为x,则出栈的函数如下:第二章 数组与线性表第26页,本讲稿共58页出栈函数void pop(ST,int top,x)if(top=0)printf(“空栈!n”);/*栈为空显示相应的信息*/else x=STtop;top=top-1;/*栈顶位置下移*/第二章 数组与线性表第27页,本讲稿共58页2.3.2 堆栈的应用 1.堆栈在函数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实用 数据结构 电子 教案 第二 数组 线性
限制150内