收藏 分销(赏)

高中信息技术 第1章 数据结构课件 沪教版选修1 课件.ppt

上传人:pc****0 文档编号:13315272 上传时间:2026-02-28 格式:PPT 页数:117 大小:1.24MB 下载积分:10 金币
下载 相关 举报
高中信息技术 第1章 数据结构课件 沪教版选修1 课件.ppt_第1页
第1页 / 共117页
高中信息技术 第1章 数据结构课件 沪教版选修1 课件.ppt_第2页
第2页 / 共117页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,二级公共基础知识,第一章 数据结构基础,1,内容提要,算法,:,算法的基本概念、算法复杂度,数据结构的基本概念:什么是数据结构、,数据结构的图形表示、,线性结构与非线性结构,线性表及其顺序存储结构:线性表的基本概念、,顺序存储结构、插入运算、删除运算,栈和队列:栈及其基本运算、队列及其基本运算,线性链表:基本概念、基本运算、循环链表及其基本运算,树与二叉树:树的基本概念、二叉树及其基本性质、,二叉树的存储结构、二叉树的遍历,查找技术:,顺序查找、二分法查找,排序技术:交换类排序法、,插入类排序法、选择类排序法,2,1.1,算法,3,1.1.1,算法的基本概念,算法是解题方案的准确而完整的描述,它不等于程序,也不等计算方法。,1,算法的基本特征,可行性,(effectiveness),确定性,(definiteness),有穷性,(finiteness),拥有足够的情报,2,算法的基本要素,算法中对数据的运算和操作,算术运算,:,包括加、减、乘、除等),逻辑运算,:,包括“与”、“或”、“非”等运算),关系运算,:,包括“大于”、“小于”、“等于”、“不等于”等),数据传输,:,包括赋值、输入、输出等操作,算法的控制结构,4,1.1.1,算法的基本概念,3,算法设计的基本方法,列举法,归纳法,递推,递归,减半递推技术,回溯法,5,1.1.2,算法复杂度,算法复杂度:时间复杂度、空间复杂度,1,算法的时间复杂度,执行算法所需要的计算工作量,与下列因素有关:,书写算法的程序设计语言,编译产生的机器语言,代码质量,机器执行指令的速度,问题的规模,6,1.1.2,算法复杂度,问题的规模函数,算法的工作量,=,f(n,),算法中基本操作重复执行的频率,T(n,),,是问题规模,n,的某个函数,f(n,),,记作:,T(n,)=,O(f(n,),记号“,O,”,读作“大,O,”,。表示随问题规模,n,的增加,算法执行时间的增长率和,f(n,),相应增加。,常见算法复杂度:,O(1),:,常数阶,O(n,),:,作线性阶,O(n,2,),:,平方阶,O(n,3,),:,立方阶,O(logn,),:,对数阶,O(2,n,),:,指数阶,7,1.1.2,算法复杂度,nn,矩阵相乘算法:,时间复杂度为,O(n,3,),。,8,1.1.2,算法复杂度,分析算法的工作量两种方法:,平均性态,最坏情况复杂性,9,1.1.2,算法复杂度,2,算法的空间复杂度,算法执行过程中所需的最大存储空间,存储量包括以下三部分,算法程序所占的空间,输入的初始数据所占的存储空间,算法执行过程中所要的额外空间,算法空间复杂度可定义为:,S(n,)=,O(f(n,),原地工作,(in place),的算法:记作,O(1),压缩存储技术,10,1.2,数据结构的基本概念,11,1.2.1,什么是数据结构,1,数据结构研究的主要内容,数据的逻辑结构,数据的存储结构,对各种数据结构进行的运算,2,研究数据结构目的,提高数据处理的速度,尽量节省在数据处理过程中所占用的计算机存储空间,12,1.2.1,什么是数据结构,1,数据结构研究的主要内容,数据的逻辑结构,数据的存储结构,对各种数据结构进行的运算,2,研究数据结构目的,提高数据处理的速度,尽量节省在数据处理过程中所占用的计算机存储空间,13,1.2.1,什么是数据结构,1,数据的逻辑结构,2,、数据的存储结构,3,、数据的运算:检索、排序、插入、删除、修改等。,A,线性结构,B,非线性结构,A,顺序存储,B,链式存储,线性表,栈,队,树形结构,图形结构,数据结构的三个方面,14,1.2.1,什么是数据结构,3,数据结构的定义,相互有关联的数据元素的集合,数据元素之间的关系可以用前后件关系来描述,一个数据结构应包含以下两方面信息:,表示数据元素的信息,表示各数据元素之间的前后件关系,15,1.2.1,什么是数据结构,4,数据的逻辑结构,对数据元素之间的逻辑关系的描述,只抽象地反映数据元素之间的逻辑关系,与计算机中的存储无关,两个要素:,数据元素的集合,通常记为,D,;,前后件关系,通常记为,R,一个数据结构,B,可以表示为:,B=,(,D,,,R,),16,1.2.1,什么是数据结构,5,数据的存储结构,数据的逻辑结构在计算机存储空间中的存放形式,它包括数据元素的存储方式和关系的存储方式。,常用的存储结构:,顺序,链式,索引,一种数据结构可根据需要采用不同的存储结构。采用不同的存储结构,其数据处理的效率是不同,17,1.2.2,数据结构的图形表示,数据结点:用方框表示,根结点、终端结点,前后件关系:用有向线段表示,基本运算:,插入运算,删除运算,查找、分类、合并、分解、复制、修改、,18,1.2.3,线性结构与非线性结构,空的数据结构:一个数据元素都没有,线性结构,如果一个非空数据结构满足下列两个条件:,有且只有一个根结点;,每一个结点最多有一个前件,也最多有一个后件。,常见的线性结构有:线性表、栈与队列、线性链表,非线性结构,如果一个数据结构不是线性结构,常见的非线性结构有:树、二叉树、图,19,1.3,线性表及其顺序存储结构,20,1.3.1,线性表的基本概念,线性表:由,n,(n0),个相同类型数据元素构成的有限序列:,n,定义为线性表的表长;,n,=0,时的线性表被称为空表。称,i,为在线性表中的位序。,例如:,英文大写字母表,(,A,,,B,,,C,,,D,,,E,,,F,,,X,,,Y,,,Z,),同一花色的,13,张扑克牌,(2,3,4,5,6,7,8,9,10,J,Q,K,A),21,1.3.1,线性表的基本概念,线性表的结构特征,数据元素在表中的位置由序号决定,数据元素之间的相对位置是线性的;,对于一个非空线性表,有且只有一个根结点,a,1,,它无前件,有且只有一个终端结点,a,n,,它无后件,除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。,线性表的存储结构,顺序存储,链式存储,22,1.3.2,线性表的顺序存储结构,两个基本特点:,线性表中所有元素所占的存储空间是连续的。,线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。,存储示意图,23,1.3.3,顺序表的插入运算,24,1.3.4,顺序表的删除运算,25,顺序表的插入和删除分析,插入算法的分析,假设线性表中含有,n,个数据元素,在进行插入操作时,若假定在,n+1,个位置上插入元素的可能性均等,则平均移动元素的个数为:,删除算法的分析,在进行删除操作时,若假定删除每个元素的可能性均等,则平均移动元素的个数为:,分析结论,顺序存储结构表示的线性表,在做插入或删除操作时,平均需要移动大约一半的数据元素。当线性表的数据元素量较大,并且经常要对其做插入或删除操作时,这一点需要值得考虑,26,1.4,线性链表,27,1.4.1,线性链表的基本概念,1,线性表顺序存储的缺点,插入或删除的运算效率很低。在顺序存储的线性表中,插入或删除数据元素时需要移动大量的数据元素。,线性表的顺序存储结构下,线性表的存储空间不便于扩充。,线性表的顺序存储结构不便于对存储空间的动态分配。,28,1.4.1,线性链表的基本概念,2,线性链表,线性表的链式存储结构,物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接来实现的,每个结点由两部分组成:数据域和指针域,29,1.4.1,线性链表的基本概念,双向链表:每个结点设置两个指针,左指针:指向其前件结点,右指针:指向其后件结点,30,1.4.2,线性链表的基本运算,插入,删除,合并,分解,逆转,复制,排序,查找,31,1.4.2,线性链表的基本运算,1,在线性链表中查找指定元素,链表不是随机存取结构,从链表的头指针出发,顺着链域,next,逐个结点往下搜索,直至搜索到第,i,个结点为止,2,线性链表的插入,32,1.4.2,线性链表的基本运算,3,线性链表的删除,与顺序存储相比,链表的优点有:,插入和删除元素时,不需要移动数据元素,只需要修改指针即可,33,1.4.,3,双向链表,双向链表:每个结点设置两个指针,左指针:指向其前件结点,右指针:指向其后件结点,34,1.4.4,循环链表及其基本运算,循环链表特点:,在链表中增加了一个表头结点,最后一个结点的指针域指向表头结点,构成了一个环状链,循环链表优点:,从任一结点出发来访问表中其他所有结点,空表与非空表的运算的统一,35,1.5,栈和队列,36,1.5.1,栈及其基本运算,1,栈的定义,栈(,stack,):一种只允许在表的一端进行插入或删除操作的特殊的线性表,栈顶,(top),:允许进行插入与删除操作的一端,栈底,(bottom),:不允许插入与删除操作的另一端,先进后出(,FILO,)或后进先出,(LIFO),的线性表,37,1.5.1,栈及其基本运算,2,栈的顺序存储及其运算,top=0,:栈空,top=,m,:,栈满,栈的基本运算,入栈运算,退栈运算,读栈顶元素,38,1.5.1,栈及其基本运算,3,栈的链式存储结构,链栈,39,1.5.2,队列及其基本运算,1,队列的定义,限定只能在表的一端进行插入和在另一端进行删除操作的线性表,队尾,(rear),:允许插入的一端,队头,(front),:允许删除的另一端,先进先出(,FIFO,)表或后进后出(,LILO,)线性表,基本操作,入队运算:往队列的队尾插入一个元素,队尾指针,rear,的变化,退队运算:从队列的排头删除一个元素,队头指针,front,的变化,40,1.5.2,队列及其基本运算,2,循环队列及其运算,队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用,入队运算:队尾指针加,1,,并当,rear=m+1,时置,rear=1,出队运算:队头指针加,1,,并当,front=m+1,时置,front=1,41,1.5.2,队列及其基本运算,3,队列链式存储结构,链队列,42,1.6,树与二叉树,43,1.6,树与二叉树,1,树的定义,树,(Tree),是,n(n0),个结点的有限集,T,,,T,为空时称为空树,否则它满足如下两个条件:,(,1,)有且仅有一个特定的称为根,(Root),的结点;,(,2,)其余的结点可分为,m(m0),个互不相交的子集,T1,,,T2,,,T3,,,,,Tm,,其中每个子集又是一棵树,并称其为子树。,44,1.6,树与二叉树,2,树中的基本概念,父结点与树的根:每个结点最多只允许有一个前件,称为该结点的父结点。没有前件的结点中有一个,称为树的根结点。,子结点与叶子结点:在树结构中,每一个结点可以有多个后件,它们都称为该结点的子结点。没有后件的结点称为叶子结点。,结点的度和树的度:一个结点所拥有后件个数称为该结点的度。一棵树中各个结点度数的最大值叫做这棵树的度。,层和树的深度:树结构是一种层次结构,根结点为第一层,根的子结点为第二层,其余各结点的层数逐层由上而下计算。一棵树中结点的最大层数叫做此树的深度。,45,1.6.1,树的基本概念,树的特点,(,1,)树中只有根结点没有前件;,(,2,)除根外,其余结点都有且仅一个前件;,(,3,)树的结点,可以有零个或多个后件;,(,4,)除根外的其他结点,都存在唯一条从根到该结点的路径;,(,5,)树是一种分支结构(除根的结点外)每个元素都有且仅有一个直接前件,有且仅有零个或多个直接后件。,树的存储,用多重链表来表示,46,1.6.2,二叉树及其基本性质,1,二叉树的定义,一个二叉树是,n,个结点的有限集合(,n0,),此集合或者是空集(,n=0,),或者是由一个根结点及两棵互不相交的、分别称为左子树和右子树的二叉树组成,并且左右子树都是二叉树。,特点:,非空二叉树只有一个根结点;,每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。,47,1.6.2,二叉树及其基本性质,2,二叉树的性质,性质,1,在二叉树的第,k,层上,最多有 个结点。,性质,2,深度为,m,的二叉树最多有个 结点。,性质,3,在任意一棵二叉树中,度数为,0,的结点(即叶子结点)总比度为,2,的结点多一个。即:,其中,,n0,表示度数为,0,的结点数,,n2,表示度数为,2,的结点数。,性质,4,具有,n,个结点的二叉树的深度至少为 ,其中 表示取 的整数部分。,48,1.6.2,二叉树及其基本性质,3,满二叉树和完全二叉树,满二叉树:除最后一层外,每一层上的所有结点都有两个子结点。,完全二叉树:除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。,49,1.6.2,二叉树及其基本性质,性质,5,具有,n,个结点的完全二叉树深度为 。,性质,6,设完全二叉树共有,n,个结点,如果从根结点开始,按层序(每一层从左到右)用自然数,1,,,2,,,,,n,给结点进行编号,则对于编号为,k,(,k,=1,,,2,,,,,n,)的结点有以下结论:,若,k,=1,,则该结点为根结点,它没有父结点;若,k,1,,则该结点的父结点的编号为,INT(,k,/2),。,若,2,k,n,,则编号为,k,的左子结点编号为,2,k,;否则该结点无左子结点(显然也没有右子结点)。,若,2,k,+1,n,,则编号为,k,的右子结点编号为,2,k,+1,;否则该结点无右子结点。,50,1.6.3,二叉树的存储结构,普通二叉树,采用链式存储结构,存储结点由两部分组成:数据域与指针域,两个指针域:,左指针域,右指针域,满二叉树与完全二叉树,采用顺序存储结构,51,1.6.4,二叉树的遍历,二叉树的遍历:不重复地访问二叉树中的所有结点,1,前序遍历(,DLR,),首先访问根结点,然后遍历左子树,最后遍历右子树;并且,在遍历左右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。,2,中序遍历(,LDR,),首先遍历左子树,然后访问根结点,最后遍历右子树;并且,在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树,3,后序遍历(,LRD,),首先遍历左子树,然后遍历右子树,最后访问根结点,并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。,52,1.6.4,二叉树的遍历,前序遍历:,A,、,B,、,D,、,G,、,C,、,E,、,F,中序遍历:,D,、,G,、,B,、,A,、,E,、,C,、,F,后序遍历:,G,、,D,、,B,、,E,、,F,、,C,、,A,53,1.7,查找技术,54,1.7,查找技术,查找(,Searching,):根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素。,查找结果:,查找成功:找到,查找不成功:没找到,平均查找长度:查找过程中关键字和给定值比较的平均次数,55,1.7.1,顺序查找,基本思想:,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查到所要找的元素为止。否则就是表中没有要找的元素,查找不成功。,平均要与表中一半以上元素进行比较,最坏情况下需要比较,n,次。,下列两种情况下只能采用顺序查找:,如果线性表是无序表(即表中的元素是无序的),则不管是顺序存储结构还是链式存储结构,都只能用顺序查找。,即使是有序线性表,如果采用链式存储结构,也只能用顺序查找。,56,1.7.2,二分法查找,思想:先确定待查找记录所在的范围,然后逐步缩小范围,直到找到或确认找不到该记录为止。,前提:必须在具有顺序存储结构的有序表中进行。,查找过程:,1,)若中间项的值等于,x,则说明已查到。,2,)若,x,小于中间项的值,则在线性表的前半部分查找;,3,)若,x,大于中间项的值,则在线性表的后半部分查找。,特点:比顺序查找方法效率高。最坏的情况下,需要比较,log,2,n,次。,57,1.7.2,二分法查找,例:查找元素,22,过程:,58,1.8,排序技术,59,1.8.1,交换类排序法,基本思想,两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。,方法,冒泡排序,快速排序,60,1.,冒泡排序,基本思想,对存放原始数据的数组,按从后往前的方向进行多次扫描,当发现相邻两个数据的次序与排序要求的“递增次序”不符合时,即将这两个数据进行互换。这样,较小的数据就会逐单元向前移动,好象气泡向上浮起一样。,性能分析,假设线性表的长度,n,,则在最坏情况下,需要的比较次数为,n(n-1)/2,。,61,1.,冒泡排序,62,2,快速排序,基本思想,任取待排序序列中的某个元素作为基准(一般取第一个元素),通过一趟排序,将待排元素分为左右两个子序列,左子序列元素的排序码均小于或等于基准元素的排序码,右子序列的排序码则大于基准元素的排序码,然后分别对两个子序列继续进行排序,直至整个序列有序。,快速排序的平均时间复杂度为,O(nlog,2,n),。,63,2,快速排序,64,1.8.2,插入类排序法,基本思想:,每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。,方法,:,简单插入排序,希尔排序,65,1,简单插入排序法,基本思想:,把,n,个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有,n-1,个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。,在最坏的情况下,需要,n(n-1)/2,次比较。,66,1,简单插入排序法,67,2,希尔排序,基本思想,先将整个待排元素序列分割成若干个子序列(由相隔某个增量,h,的元素组成的)分别进行直接插入排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的。,增量序列一般取 ,其中,n,为待排序序列的长度,在最坏情况下,希尔排序的时间复杂度为,68,2,希尔排序,69,1.8.3,选择类排序法,基本思想:,每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子序列的最后,直到全部记录排序完毕。,方法:,简单选择排序,堆排序,70,1,简单选择排序法,基本思想:,扫描整个线性表,从中选出最小的元素,将它交换到表的最前面;然后对剩下的子表采用同样的方法,直到子表空为止。,最坏情况下,需要比较,n(n-1)/2,次。,71,1,简单选择排序法,72,2,堆排序法,堆的定义,具有,n,个元素的序列,当且仅当满足,或 ,时称之为堆。称为大根堆;称为小根堆。,73,2,堆排序法,建堆,在建堆的过程中,总是将根结点值与左、右子树的根结点值进行比较,若不满足堆的条件,则将左、右子树根结点值中的大者与根结点值进行交换。这个调整过程一直做到所有子树均为堆为止。,堆排序,(,1,)首先将一个无序序列建成堆。,(,2,)然后将堆顶元素,(,序列中的最大项,),与堆中最后一个元素交换,(,最大项应该在序列的最后,),。不考虑已经换到最后的那个元素,只考虑前,n,-1,个元素构成的子序列,将该子序列调整为堆。,反复做步骤(,2,),直到剩下的子序列空为止。,在最坏情况下,堆排序法需要比较的次数为,O(nlog,2,n),。,74,各种排序法比较,75,典型考题分析,76,【,例,1-1】,问题处理方案的正确而完整的描述称为,。(,2005,年,4,月),答案 算法,77,【,例,1-2】,算法复杂度主要包括时间复杂度和,复杂度。(,2005,年,9,月),答案 空间,78,【,例,1-3】,算法的时间复杂度是指,_,。,A,)执行算法程序所需要的时间,B,)算法程序的长度,C,)算法执行过程中所需要的基本运算次数,D,)算法程序中的指令条数,答案,C,79,【,例,1-4】,算法的空间复杂度是指,_,。,A,)算法程序的长度,B,)算法程序中的指令条数,C,)算法程序所占的存储空间,D,)算法执行过程中所需要的存储空间,答案,D,80,【,例,1-5】,下列叙述中正确的是,。(,2006,年,9,月),A,)一个算法的空间复杂度大,则其时间复杂度也必定大,B,)一个算法的空间复杂度大,则其时间复杂度必定小,C,)一个算法的时间复杂度大,则其空间可复杂度必定小,D,)上述三种说法都不对,答案,D,81,【,例,1-6】,下列叙述中正确的是,。(,2005,年,9,月),A,)一个逻辑数据结构只能有一种存储结构,B,)数据的逻辑结构属于线性结构,存储结构属于非线性结构,C,)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率,D,)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率,答案,D,82,【,例,1-7】,数据结构分为逻辑结构和存储结构,循环队列属于,结构。(,2005,年,9,月),答案 逻辑,83,【,例,1-8】,数据结构分为线性结构和非线性结构,带链的队列属于,。(,2006,年,9,月),答案 线性结构,84,【,例,1-9】,下列叙述中正确的是,_,。(,2006,年,4,月),A,)线性链表是线性表的链式存储结构,B,)栈与队列是非线性结构,C,)双向链表是非线性结构,D,)只有根结点的二叉树是线性结构,答案,A,85,【,例,1-10】,某线性表采用顺序存储结构,每个元素占,4,个存储单元,首地址为,200,,则第,12,个元素的存储地址为,。,A,),248,B,),247,C,),246,D,),244,答案,D,86,【,例,1-11】,在长度为,n,的顺序表的第,i,(,1,i,n,+1,)个位置上插入一个元素,元素的移动次数为,。,A,),n,-,i,+1,B,),n,-,i,C,),i,D,),i,-1,答案,A,87,【,例,1-12】,在一个长度为,n,的顺序表中,删除第,i,(,1,i,n,)个元素时,需要移动的元素个数为,。,A,),n,-,i,+1,B,),n,-,i,C,),i,D,),i,-1,答案,B,88,【,例,1-13】,以下描述的中,不是线性表的顺序存储结构的特征的是,。,A,)不便于插入和删除,B,)需要连续的存储空间,C,)可随机访问,D,)需另外开辟空间来保存元素之间的关系,答案,D,89,【,例,1-14】,下列关于栈的描述中错误的是,_,。(,2005,年,4,月),A,)栈是先进后出的线性表,B,)栈只能顺序存储,C,)栈具有记忆作用,D,)对栈的插入与删除操作中,不需要改变栈底指针,答案,B,90,【,例,1-15】,栈和队列的共同点是,_,。,A,)都是先进先出,B,)都是先进后出,C,)只允许在端点处插入和删除元素,D,)没有共同点,答案,C,91,【,例,1-16】,栈的输入序列为,1,,,2,,,3,,,,,n,-1,,,n,,输出序列的第,1,个元素为,n,,则第个输出元素为,_,。,A,),n,-,i,+1,B,),n,-1,C,),i,D,)哪个元素无所谓,答案,A,92,【,例,1-17】,一个队列的入队序列是,1,、,2,、,3,、,4,,则队列的输出序列是,。,A,),4,、,3,、,2,、,1,B,),1,、,2,、,3,、,4,C,),1,、,4,、,3,、,2,D,),3,、,2,、,4,、,1,答案,B,93,【,例,1-18】,队列是限定只能在表的一端进行插入和在另一端进行删除操作的线性表。允许插入的一端称作,_,。,答案 队尾,94,【,例,1-19】,下列对于线性链表的描述中正确的是,。(,2005,年,4,月),A,)存储空间不一定是连续,且各元素的存储顺序是任意的,B,)存储空间不一定是连续,且前件元素一定存储在后件元素的前面,C,)存储空间必须连续,且各前件元素一定存储在后件元素的前面,D,)存储空间必须连续,且各元素的存储顺序是任意的,答案,A,95,【,例,1-20】,下列叙述中,错误的是,。,A,)线性表是由,n,个数据元素组成的一个有限序列,B,)线性表是一种线性结构。,C,)线性表的所有结点有且只有一个前件和一个后件,D,)线性表可以是空表。,答案,C,96,【,例,1-21】,下列描述的不是链表的优点是,_,。,A,)逻辑上相邻的结点物理上不必邻接,B,)插入、删除运算操作方便,不必移动结点,C,)所需存储空间比线性表节省,D,)无需事先估计存储空间的大小,答案,C,97,【,例,1-22】,某线性表最常用的运算是插入和删除,插入运算是指在表尾插入一个新元素。删除运算是指删除表头第一个元素,那么采用,存储方式最节省运算时间。,A,)仅有尾指针的单向循环链表,B,)仅有头指针的单向循环链表,C,)单向链表,D,)顺序存储,答案,A,98,【,例,1-23】,一棵二叉树第六层(根结点为第一层)的结点数最多为,个。(,2005,年,9,月),答案,32,99,【,例,1-24】,深度为,5,的二叉树至多有,_,个结点。,A,),16,B,),32,C,),31,D,),10,答案,C,100,【,例,1-25】,设树,T,的度为,4,,其中度为,1,,,2,,,3,,,4,的结点个数分别为,4,,,2,,,1,,,1,。则,T,中的叶子结点为,_,。,A,),8,B,),7,C,),6,D,),5,答案,A,101,【,例,1-26】,某二叉树中度为,2,的结点有,18,个,则该二叉树中有,个叶子结点。(,2005,年,4,月),答案,19,102,【,例,1-27】,具有,88,个结点的二叉树,其深度至少为,_,。,答案,7,103,【,例,1-28】,在深度为,7,的满二叉树中,叶子结点的个数为(,2006,年,4,月),A,),32,B,),31,C,),64,D,),63,答案,C,104,【,例,1-29】,设一棵完全二叉树共有,700,个结点,则在该二叉树中有,_,个叶子结点。,答案,350,105,【,例,1-30】,对如图,1-30,所示的二叉树,进行后序遍历的结果为,。(,2006,年,4,月),A,),ABCDEF,B,),DBEAFC,C,),ABDECF,D,),DEBFCA,答案,D,106,【,例,1-31】,假设一棵二叉树的后序遍历序列为,DGJHEBIFCA,,中序遍历序列为,DBGEHJACIF,,则其前序遍历序列为,。,答案:,ABDEGHJCFI,107,【,例,1-32】,对长度为,n,的线性表进行顺序查找,在最坏情况下所需要的比较次数为,_,。(,2005,年,4,月),A,),log,2,n,B,),n/2,C,),n,D,),n+l,答案,C,108,【,例,1-33】,下列数据结构中,能用二分法进行查找的是,。(,2005,年,9,月),A,)顺序存储的有序线性表,B,)线性链表,C,)二叉链表,D,)有序线性链表,答案,A,109,【,例,1-34】,已知一个有序表为(,13,,,18,,,24,,,35,,,47,,,50,,,62,,,83,,,90,,,115,,,134,),当使用二分法查找值为,90,的元素时,查找成功的比较次数为,。,A,),1,B,),2,C,),3,D,),9,答案,B,110,【,例,1-35】,对长度为,10,的线性表进行冒泡排序,最坏情况下需要比较的次数为,。(,2006,年,4,月),答案,45,111,【,例,1-36】,在排序算法中,两两比较待排序的记录,当发现不满意顺序要求时,变更它们的相对位置,这就是,排序。,A,)希尔排序,B,)交换排序,C,)插入排序,D,)选择排序,答案,B,112,【,例,1-37】,设待排序关键码序列为(,33,,,18,,,9,,,25,,,67,,,82,,,53,,,95,,,12,,,70,),要按关键码值递增的顺序排序,采取以第一个关键码为基准元素的快速排序法,第一趟排序完成后关键码,33,被放到了第,_,位置。,A,),3,B,),5,C,),7,D,),9,答案,B,113,【,例,1-38】,对于给定的一组关键字(,12,,,2,,,16,,,30,,,8,,,28,,,4,,,10,,,20,,,6,,,18,),按照希尔排序(增量为,5,)算法进行递增排序,第一趟排序后得到的结果是,。,答案,12,,,2,,,10,,,20,,,6,,,28,,,4,,,16,,,30,,,8,,,18,114,【,例,1-39】,对数据元素序列(,49,,,72,,,68,,,13,,,38,,,50,,,97,,,27,)进行排序,前三趟排序结束时的结果依次为:第一趟:,13,,,72,,,68,,,49,,,50,,,97,,,27,;第二趟:,13,,,27,,,68,,,49,,,38,,,50,,,97,,,72,;第三趟:,13,,,27,,,38,,,49,,,68,,,50,,,97,,,72,。该排序采用的方法是,_,。,A,)简单插入排序法,B,)冒泡排序法,C,)简单选择排序法,D,)快速排序法,答案,C,115,【,例,1-40】,以下各组序列中,属于堆的是,_,。,A,),19,,,34,,,26,,,97,,,56,,,75,B,),97,,,26,,,34,,,75,,,19,,,56,C,),19,,,56,,,26,,,97,,,34,,,75,D,),19,,,75,,,34,,,26,,,97,,,56,答案,A,116,【,例,1-41】,对于长度为,n,的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是,_,。(,2005,年,4,月),A,)冒泡排序为,n/2,B,)冒泡排序为,n,C,)快速排序为,n,D,)快速排序为,n(n-1)/2,答案,D,117,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服