您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > 《数据结构》期末考试题及答案
12011-2012学年第一学期期末考查《数据结构》试卷(答案一律写在答题纸上,在本试卷上做答无效)一、选择(每题1分,共10分)1.长度为n的线性表采用顺序存储结构,一个在其第i个位置插入新元素的算法时间复杂度为(D)A.O(0)B.O(1)C.O(n)D.O(n2)2.六个元素按照6,5,4,3,2,1的顺序入栈,下列哪一个是合法的出栈序列?(D)A.543612B.453126C.346512D.2341563.设树的度为4,其中度为1、2、3、4的结点个数分别是4、2、1、2,则树中叶子个数为(B)A.8B.9C.10D.114.设森林F对应的二叉树B有m个结点,B的右子树结点个数为n,森林F中第一棵树的结点个数是(B)A.m-nB.m-n-1C.n+1D.m+n5.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是(B)A.9B.11C.15D.不确定6.下列哪一个方法可以判断出一个有向图是否有环。(A)A.深度优先遍历B.拓扑排序C.求最短路径D.求关键路径7.第7层有10个叶子结点的完全二叉树不可能有(B)个结点。A.73B.234C.235D.2368.分别用以下序列构造二叉排序树,与用其他三个序列构造的结果不同的是(B)A.(100,80,90,60,120,110,130)B.(100,120,110,130,80,60,90)C.(100,60,80,90,120,110,130)D.(100,80,60,90,120,130,110)9.对一组数据(84,47,25,15,21)排序,数据的排列次序在排序过程中变化如下:(1)8447251521(2)1547258421(3)1521258447(4)1521254784则采用的排序方法是(B)A.选择排序B.起泡排序C.快速排序D.插入排序10.对线性表进行折半查找时,要求线性表必须(D)A.以顺序方式存储B.以顺序方式存储,且数据元素有序2C.以链接方式存储D.以链接方式存储,且数据元素有序二、填空(每空1分,共15分)1.数据结构中评价算法的两个重要指标是时间复杂度、空间复杂度。2.在单链表中,指针P所指结点有后继的条件是p-next.data!=null。(结点构成:data和next)3.栈的特点是先进后出。4.判断循环队列是否队满的条件表达式是。5.完全二叉树中的结点个数为n,则编号最大的分支结点的编号为2^n-1。6.如果A有7个兄弟,而B是A的双亲,则B的度是2。7.如果二叉树中有20个叶子节点,30个度为1的结点,则该二叉树的总结点数为。8.设二叉树中每个结点均用一个字母表示,若一个结点的左子树或者右子树为空,用.表示。现前序遍历二叉树的结点序列为ABD.G…CE.H..F..,则中序遍历二叉树的结点序列为。9.若用n表示图中的顶点数目,则有条边的无向图被称为完全图。10.如果具有n个顶点的图是一个环,则它有棵生成树。11.克鲁斯卡尔算法的时间复杂度是,它适合求图的最小生成树。12.顺序查找n个元素的线性表,若查找成功时的平均查找长度为。13.高度为5的完全二叉树,其结点最少有个。14.直接插入排序中使用的监视哨的作用是。三、判断题(每题1分,共10分)1.算法独立于具体的程序设计语言,与具体的计算机无关。()2.线性表采用链式存储时,结点内部的存储空间可以是不连续的。()3.栈和队列的存储方式,既可以是顺序方式,又可以是链式方式。()4.哈夫曼树的结点总个数一定是偶数。()5.已知二叉树的先序遍历序列和中序遍历序列,可以画出这棵二叉树()。6.有e条边的无向图,在其对应的邻接表中有e个结点。()7.连通分量指的是无向图的极大连通子图。()8.在哈希表的查找过程中的“比较”操作是无法避免的。()9.完全二叉树肯定是平衡二叉树。()10.堆排序是稳定的排序算法。()3四、简答题(共30分)1.线性结构的特点是?(4分)2.已知图的邻接矩阵存储如下所示,请根据该邻接矩阵画出对应的图,并给出从A出发的广度优先搜索序列,以及相应的广度优先生成树。(6分)ABCDEFABCDEF3.已知一棵二叉树的后序遍历序列为EICBGAHDF,中序遍历序列为CEIFGBADH,请画出这棵二叉树,并把这棵二叉树转换成相应的树(或森林)。(6分)4.已知电文内容为:ACACBACDAACDBAACADAA,字符集为A,B,C,D,设计一套二进制编码,使得上述电文的编码最短。(6分)5.已知有序序列{3,7,11,20,45,77,90},请分别写出折半查找10和查找99的过程,并求出ASL(4分)6.已知序列{34,17,6,29,33,11,80,37}请用快速排序的方法进行排序,并给出详细过程。(4分)五、算法填空(每空5分,共20分)(1)按先序次序输入二叉树中的结点值(字符)构造二叉树StatusCreateBiTree(BiTree&T){charch;read(ch);if(ch=='')T=NULL;else{T=(BiTree)malloc(sizeof(BiTNode));(1);CreateBiTree(T-lchild);(2);}0100101000110001010010011100000111004returnOK;}(2)在顺序表L的第i个元素之前插入新的元素eStatusListInsert(SqList&L,inti,ElemTypee){if(i1||iL.length+1)returnERROR;//插入位置不合法for(j=L.length;ji;j--)(3);L.elem[i-1]=e;//插入e(4);returnOK;}//ListInsert_Sq六、写算法(共15分)1.请写出链式存储的线性表中,删除第i个位置数据元素的实现算法。(给出相应的结构体定义,关键部分给出注释。)2011-2012学年第一学期期末考查《数据结构》标准答案一、选择(每题1分,共10分)1-5DBBBB6-10ACCDB二、填空(每空1分,共15分)1.时间复杂度,空间复杂度2.FIFO,LIFO3.Q.rear==Q.front4.75.86.O(n2),稠密图7.极大连通子图8.n(n-1)9.n-110.集合结构,树形结构,图状结构三、判断题(每题1分,共10分)cdfeba51.×2.√3.√4.×5.√6.×7.×8.×9.×10.×四、简答题(共30分)1.(1)在二叉树的第i层上至多有2i-1个结点;(i≥1)(2)深度为k的二叉树上至多含2k-1个结点(k≥1);(3)对任何一棵二叉树,若它含有n0个叶子结点、n2个度为2的结点,则必存在关系式:n0=n2+1;(4)具有n个结点的完全二叉树的深度为log2n+1。(5)若对含n个结点的完全二叉树从上到下且从左至右进行1至n的编号,则对完全二叉树中任意一个编号为i的结点:若i=1,则该结点是二叉树的根,无双亲,否则,编号为i/2的结点为其双亲结点;若2in,则该结点无左孩子,否则,编号为2i的结点为其左孩子结点;若2i+1n,则该结点无右孩子结点,否则,编号为2i+1的结点为其右孩子结点。评分标准:答对5条中的4条得4分。2.深度优先遍历序列:abefdc深度优先生成树:a-.b-c-e-f-d-c评分标准:深度优先遍历序列3分,深度优先生成树3分。3.(1)T-next-next=P-next;(2)Q=T;While(Q-!=P){Q=Q-next;}Q-next=P-next;free(P);评分标准:回答(1)或者(2)都正确。4.5.{11,3,7,77,20,45,90}ABCDEF6查找过程:11,3,7,77或者90,45,20,776.{34,17,6,29,33,11,80,37}d=511,17,6,29,33,34,80,37d=311,17,6,29,33,34,80,37d=16,11,17,29,33,34,37,80五、算法填空(每空5分,共20分)1.(1)visit(T-data);或者printf(T-data);(2)PreOrderTraverse(T-rchild);2.(1)returnmid;(2)high=mid-1;六、写算法(共15分)//删除表L中第i个元素,结果用e返回,操作成功返回OK,失败时返回ERRORStatusListDelete(SqList&L,inti,ElemType&e){if(i1||iL.length)returnERROR;e=L.elem[i-1];for(intj=i+1;j=L.length;j++)L.elem[j-2]=L.elem[j-1];L.length--;returnOK;}
本文标题:《数据结构》期末考试题及答案
链接地址:https://www.777doc.com/doc-6767961 .html