一、填空:1.顺序存储结构的特点是(),链接存储结构的特点是()。【解答】用元素在存储器中的相对位置来表示数据元素之间的逻辑关系,用指示元素存储地址的指针表示数据元素之间的逻辑关系。2.算法在发生非法操作时可以作出处理的特性称为()。【解答】健壮性3.常见的算法时间复杂度用大O记号表示为:常数阶()、对数阶()、线性阶()、平方阶()和指数阶()。【解答】O(1),O(log2n),O(n),O(n2),O(2n)4.将下列函数按它们在n时的无穷大阶数,从小到大排列。n,n-n3+7n5,nlogn,2n/2,n3,log2n,n1/2+log2n,(3/2)n,n!,n2+log2n【解答】log2n,n1/2+log2n,n,nlog2n,n2+log2n,n3,n-n3+7n5,2n/2,(3/2)n,n!5.在长度为n的线性表中查找值为x的数据元素的时间复杂度为:()。AO(0)BO(1)CO(n)DO(n2)【解答】C6.在一个长度为n的顺序表的第i(1≤i≤n+1)个元素之前插入一个元素,需向后移动()个元素,删除第i(1≤i≤n)个元素时,需向前移动()个元素。【解答】n-i+1,n-i7.在单链表中,除了头结点以外,任一结点的存储位置由()指示。【解答】其前趋结点的指针域8.当线性表采用顺序存储结构时,其主要特点是()。【解答】逻辑结构中相邻的结点在存储结构中仍相邻9栈通常采用的两种存储结构是();其判定栈空的条件分别是(),判定栈满的条件分别是()。【解答】顺序存储结构和链接存储结构(或顺序栈和链栈),栈顶指针top=-1和top=NULL,栈顶指针top等于数组的长度和内存无可用空间10()可作为实现递归函数调用的一种数据结构。【解答】栈【分析】递归函数的调用和返回正好符合后进先出性。11表达式a*(b+c)-d的后缀表达式是()。【解答】abc+*d-【分析】将中缀表达式变为后缀表达式有一个技巧:将操作数依次写下来,再将算符插在它的两个操作数的后面。12栈和队列是两种特殊的线性表,栈的操作特性是(),队列的操作特性是(),栈和队列的主要区别在于()。【解答】后进先出,先进先出,对插入和删除操作限定的位置不同13数组通常只有两种运算:()和(),这决定了数组通常采用()结构来实现存储。【解答】存取,修改,顺序存储【分析】数组是一个具有固定格式和数量的数据集合,在数组上一般不能做插入、删除元素的操作。除了初始化和销毁之外,在数组中通常只有存取和修改两种操作。14二维数组A中行下标从10到20,列下标从5到10,按行优先存储,每个元素占4个存储单元,A[10][5]的存储地址是1000,则元素A[15][10]的存储地址是()。【解答】1140【分析】数组A中每行共有6个元素,元素A[15][10]的前面共存储了(15-10)×6+5个元素,每个元素占4个存储单元,所以,其存储地址是1000+140=1140。15设有一个10阶的对称矩阵A采用压缩存储,A[0][0]为第一个元素,其存储地址为d,每个元素占1个存储单元,则元素A[8][5]的存储地址为()。【解答】d+41【分析】元素A[8][5]的前面共存储了(1+2+…+8)+5=41个元素。16稀疏矩阵一般压缩存储方法有两种,分别是()和()。【解答】三元组顺序表,十字链表17设高度为h的二叉树上只有度为0和度为2的结点,该二叉树的结点数可能达到的最大值是(),最小值是()。【解答】2h-1,2h-1【分析】最小结点个数的情况是第1层有1个结点,其他层上都只有2个结点。18深度为k的二叉树中,所含叶子的个数最多为()。【解答】2k-1【分析】在满二叉树中叶子结点的个数达到最多。19具有100个结点的完全二叉树的叶子结点数为()。【解答】50【分析】100个结点的完全二叉树中最后一个结点的编号为100,其双亲即最后一个分支结点的编号为50,也就是说,从编号51开始均为叶子。20已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点。则该树中有()个叶子结点。【解答】12【分析】根据二叉树性质3的证明过程,有n0=n2+2n3+1(n0、n2、n3分别为叶子结点、度为2的结点和度为3的结点的个数)。21已知一个有向图的邻接矩阵表示,计算第j个顶点的入度的方法是()。【解答】求第j列的所有元素之和22有向图G用邻接矩阵A[n][n]存储,其第i行的所有元素之和等于顶点i的()。【解答】出度23图的深度优先遍历类似于树的()遍历,它所用到的数据结构是();图的广度优先遍历类似于树的()遍历,它所用到的数据结构是()。【解答】前序,栈,层序,队列24对于含有n个顶点e条边的连通图,利用Prim算法求最小生成树的时间复杂度为(),利用Kruskal算法求最小生成树的时间复杂度为()。【解答】O(n2),O(elog2e)【分析】Prim算法采用邻接矩阵做存储结构,适合于求稠密图的最小生成树;Kruskal算法采用边集数组做存储结构,适合于求稀疏图的最小生成树。25顺序查找技术适合于存储结构为()的线性表,而折半查找技术适用于存储结构为()的线性表,并且表中的元素必须是()。【解答】顺序存储和链接存储,顺序存储,按关键码有序26设有一个已按各元素值排好序的线性表,长度为125,用折半查找与给定值相等的元素,若查找成功,则至少需要比较()次,至多需比较()次。【解答】1,7【分析】在折半查找判定树中,查找成功的情况下,和根结点的比较次数最少,为1次,最多不超过判定树的深度。27对于数列{25,30,8,5,1,27,24,10,20,21,9,28,7,13,15},假定每个结点的查找概率相同,若用顺序存储结构组织该数列,则查找一个数的平均比较次数为()。若按二叉排序树组织该数列,则查找一个数的平均比较次数为()。【解答】8,59/15【分析】根据数列将二叉排序树画出,将二叉排序树中查找每个结点的比较次数之和除以数列中的元素个数,即为二叉排序树的平均查找长度。28长度为20的有序表采用折半查找,共有()个元素的查找长度为3。【解答】4【分析】在折半查找判定树中,第3层共有4个结点。29对n个元素进行起泡排序,在()情况下比较的次数最少,其比较次数为()。在()情况下比较次数最多,其比较次数为()。【解答】正序,n-1,反序,n(n-1)/230对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序,当把第7个记录60插入到有序表时,为寻找插入位置需比较()次。【解答】3【分析】当把第7个记录60插入到有序表时,该有序表中有2个记录大于60。31对一组记录(54,38,96,23,15,72,60,45,83)进行快速排序,在递归调用中使用的栈所能达到的最大深度为()。【解答】332对n个待排序记录序列进行快速排序,所需要的最好时间是(),最坏时间是()。【解答】O(nlog2n),O(n2)二、选择1下述排序方法中,比较次数与待排序记录的初始状态无关的是()。A插入排序和快速排序B归并排序和快速排序C选择排序和归并排序D插入排序和归并排序【解答】C【分析】选择排序在最好、最坏、平均情况下的时间性能均为O(n2),归并排序在最好、最坏、平均情况下的时间性能均为O(nlog2n)。2下列序列中,()是执行第一趟快速排序的结果。A[da,ax,eb,de,bb]ff[ha,gc]B[cd,eb,ax,da]ff[ha,gc,bb]3对初始状态为递增有序的序列进行排序,最省时间的是(),最费时间的是()。已知待排序序列中每个元素距其最终位置不远,则采用()方法最节省时间。A堆排序B插入排序C快速排序D直接选择排序【解答】B,C,B【分析】待排序序列中每个元素距其最终位置不远意味着该序列基本有序。4堆的形状是一棵()。A二叉排序树B满二叉树C完全二叉树D判定树【解答】C【分析】从逻辑结构的角度来看,堆实际上是一种完全二叉树的结构。5静态查找与动态查找的根本区别在于()。A它们的逻辑结构不一样B施加在其上的操作不同C所包含的数据元素的类型不一样D存储实现不一样【解答】B【分析】静态查找不涉及插入和删除操作,而动态查找涉及插入和删除操作。6设散列表表长m=14,散列函数H(k)=kmod11。表中已有15、38、61、84四个元素,如果用线性探侧法处理冲突,则元素49的存储地址是()。A8B3C5D9【解答】A【分析】元素15、38、61、84分别存储在4、5、6、7单元,而元素49的散列地址为5,发生冲突,向后探测3个单元,其存储地址为8。7长度为12的有序表采用顺序存储结构,采用折半查找技术,在等概率情况下,查找成功时的平均查找长度是(),查找失败时的平均查找长度是()。A37/12B62/13C39/12D49/13【解答】A,B【分析】画出长度为12的折半查找判定树,判定树中有12个内结点和13个外结点。8用n个键值构造一棵二叉排序树,其最低高度为()。An/2BnClog2nDlog2n+1【解答】D【分析】二叉排序树的最低高度与完全二叉树的高度相同。9n个顶点的强连通图至少有()条边,其形状是()。AnBn+1Cn-1Dn×(n-1)E无回路F有回路G环状H树状【解答】A,G10含n个顶点的连通图中的任意一条简单路径,其长度不可能超过()。A1Bn/2Cn-1Dn【解答】C【分析】若超过n-1,则路径中必存在重复的顶点。11对于一个具有n个顶点的无向图,若采用邻接矩阵存储,则该矩阵的大小是()。AnB(n-1)2Cn-1Dn2【解答】D12图的生成树(),n个顶点的生成树有()条边。A唯一B不唯一C唯一性不能确定DnEn+1Fn-1【解答】C,F13由权值为{3,8,6,2,5}的叶子结点生成一棵哈夫曼树,其带权路径长度为()。A24B48C53D72【解答】C14用顺序存储的方法将完全二叉树中的所有结点逐层存放在数组A[1]~A[n]中,结点A[i]若有左子树,则左子树的根结点是()。AA[2i-1]BA[2i+1]CA[i/2]DA[2i]【解答】D15对任何一棵二叉树T,如果其终端结点的个数为n0,度为2的结点个数为n2,则()。An0=n2-1Bn0=n2Cn0=n2+1D没有规律【解答】C16一棵满二叉树中共有n个结点,其中有m个叶子结点,深度为h,则()。An=h+mBh+m=2nCm=h-1Dn=2h-1【解答】D17对于完全二叉树中的任一结点,若其右分支下的子孙的最大层次为h,则其左分支下的子孙的最大层次为()。AhBh+1Ch或h+1D任意【解答】C18下面的说法中,不正确的是()A数组是一种线性结构B数组是一种定长的线性结构C除了插入与删除操作外,数组的基本操作还有存取、修改、检索和排序等D数组的基本操作有存取、修改、检索和排序等,没有插入与删除操【解答】C【分析】数组属于广义线性表,数组被创建以后,其维数和每维中的元素个数是确定的,所以,数组通常没有插入和删除操作。19对特殊矩阵采用压缩存储的目的主要是为了()A表达变得简单B对矩阵元素的存取变得简单C去掉矩阵中的多余元素D减少不必要的存储空间【解答】D【分析】在特殊矩阵中,有很多值相同的元素并且他们的分布有规律,没有必要为值相同的元素重复存储。20下面()不属于特殊矩阵。A对角矩阵B三角矩阵C稀疏矩阵D对称矩阵【解答】C21将数组称为随机存取结构是因为()A数组元素是随机的B对数组任一元素的存取时间是相等的C随时可以对数组进行访问D数组的存储结构是不定【解答】B22若一个栈的输入序列是1,2,3,…,n,输出序列的第一个元素是n,则第i个输出元素是()。A不确定Bn-iCn-i-1Dn-i+1【解答】D【分析】此时,输出序列一定是输入序列的逆序。23设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5、e6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出队的顺序是e2、e4、e3、e6、e5、e1,则栈S的容量至少应该是