计算机数据结构今年考研真题及答案.pdf
《计算机数据结构今年考研真题及答案.pdf》由会员分享,可在线阅读,更多相关《计算机数据结构今年考研真题及答案.pdf(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、20091.为解决电脑与打印机之间速度不匹配的问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是4.以下二叉排序树中,满足平衡二叉树定义的是5.已知一棵完全二叉树的第 6 层设根为第 1 层有8 个叶结点,则完全二叉树的结点个数最多是A.只有 IIB.I 和 IIC.I 和 IIID.I、II 和 III7.以下关于无向连通图特性的表达中,正确的选项是8.以下表达中,不符合 m 阶 B 树定义要求的是9.已知关键序列 5,8,12,19,28,20,15,22 是小根堆最小堆,插入关键字 3,调整后得到的小根堆是A
2、3,5,12,8,28,20,15,22,19B.3,5,12,19,20,15,22,8,28C3,8,12,5,20,15,22,28,19D.3,12,5,8,28,20,15,22,1910.假设数据元素序列 11,12,13,7,8,9,23,4,5 是采用以下排序方法之一得到的第二趟排序后的结果,则该排序算法只能是41.10 分带权图权值非负,表示边连接的两顶点间的距离的最短路径问题是找出从初始顶点到目标顶点之间的一条最短路径。假定从初始顶点到目标顶点之间存在路径,现有一种解决该问题的方法:设最短路径初始时仅包含初始顶点,令当前顶点 u 为初始顶点;选择离 u 最近且尚未在最短路径
3、中的一个顶点 v,加入到最短路径中,修改当前顶点 u=v;重复步骤,直到 u 是目标顶点时为止。请问上述方法能否求得最短路径?假设该方法可行,请证明之;否则,请举例说明。42.15 分已知一个带有表头结点的单链表,结点结构为datalink假设该链表只给出了头指针 list。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第 k 个位置上的结点k 为正整数。假设查找成功,算法输出该结点的 data 值,并返回 1;否则,只返回 0。要求:1描述算法的基本设计思想2描述算法的详细实现步骤3 根据设计思想和实现步骤,采用程序设计语言描述算法 使用 C 或 C+或 JAVA 语言实现
4、,关键之处请给出简要注释。201020101、假设元素 a,b,c,d,e,f 依次进栈,允许进栈、退栈操作交替进行。但不允许连续三次进行退栈工作,则不可能得到的出栈序列是 A:dcebfa B:cbdaef C:dbcaef D:afedcb2、某队列允许在其两端进行入队操作,但仅允许在一端进行出队操作,则不可能得到的顺序是 A:bacde B:dbace C:dbcae D:ecbad3、以下线索二叉树中用虚线表示线索,符合后序线索树定义的是 4、在以下所示的平衡二叉树中插入关键字 48 后得到一棵新平衡二叉树,在新平衡二叉树中,关键字 37 所在结点的左、右子结点中保存的关键字分别是 A
5、:13,48 B:24,48 C:24,53 D:24,905、在一棵度为 4 的树 T 中,假设有 20 个度为 4 的结点,10 个度为 3 的结点,1 个度为 2 的结点,10 个度为 1 的结点,则树 T 的叶节点个数是 A:41 B:82 C:113 D:1226、对n(n 大于等于 2)个权值均不相同的字符构成哈夫曼树,关于该树的表达中,错误的选项是A:该树一定是一棵完全二叉树B:树中一定没有度为 1 的结点C:树中两个权值最小的结点一定是兄弟结点D:树中任一非叶结点的权值一定不小于下一任一结点的权值7、假设无向图 G-V.E中含 7 个顶点,则保证图 G 在任何情况下都是连通的,
6、则需要的边数最少是 A:6 B:15 C:16 D:218、对以下图进行拓补排序,可以得到不同的拓补序列的个数是 eacbdA:4 B:3 C:2 D:19、已知一个长度为 16 的顺序表 L,其元素按关键字有序排列,假设采用折半查找法查找一个不存在的元素,则比较次数最多是 A:4 B:5 C:6 D:710、采用递归方式对顺序表进行快速排序,以下关于递归次数的表达中,正确的选项是 A:递归次数与初始数据的排列次序无关B:每次划分后,先处理较长的分区可以减少递归次数C:每次划分后,先处理较短的分区可以减少递归次数D:递归次数与每次划分后得到的分区处理顺序无关11、对一组数据2,12,16,88
7、,5,10进行排序,假设前三趟排序结果如下 第一趟:2,12,16,5,10,88第二趟:2,12,5,10,16,88第三趟:2,5,10,12,16,88则采用的排序方法可能是:A:起泡排序 B:希尔排序 C:归并排序 D:基数排序问题:1请画出所构造的散列表;2分别计算等概率情况下,查找成功和查找不成功的平均查找长度。42.13 分设将 n(n,1)个整数存放到一维数组R 中,试设计一个在时间和空间两方面尽可能有效的算法,将 R 中保有的序列循环左移P 0Pn 个位置,即将 R 中的数据由X0X1Xn-1变换为XpXp+1Xn-1X0X1Xp-1要求:1给出算法的基本设计思想。2 根据设
8、计思想,采用 C 或 C+或 JAVA语言表述算法关键之处给出注释。3说明你所设计算法的时间复杂度和空间复杂度201120111.设 n 是描述问题规模的非负整数,下面程序片段的时间复杂度是x=2;while(x n/2)x=2*x;A.O(log2n)B.O(n)C.O(n log2n)D.O(n2)3.已知循环队列存储在一维数组A0.n-1 中,且队列非空时front和rear分别指向队头元素和队尾元素。假设初始时队列为空,且要求第 1 个进入队列的元素存储在 A0处,则初始时 front 和 rear 的值分别是A.0,0 B.0,n-1 C.n-1,0 D.n-1,n-14.假设一棵完
9、全二叉树有 768 个结点,则该二叉树中叶结点的个数是5.假设一棵二叉树的前序遍历序列和后序遍历序列分别为 1,2,3,4和 4,3,2,1,则该二叉树的中序遍历序列不会是A.1,2,3,4 B.2,3,4,1 C.3,2,4,1 D.4,3,2,16.已知一棵有 2011 个结点的树,其叶结点个数为 116,该树对应的二叉树中无右孩子的结点个数是7.对于以下关键字序列,不可能构成某二叉排序树中一条查找路径的序列是A.95,22,91,24,94,71 B.92,20,91,34,88,35C.21,89,77,29,36,38 D.12,25,71,68,33,348.以下关于图的表达中,正
10、确的选项是I.回路是简单路径II.存储稀疏图,用邻接矩阵比邻接表更省空间III.假设有向图中存在拓扑序列,则该图不存在回路A.仅 II B.仅 I、II C.仅 III D.仅 I、III9.为提高散列(Hash)表的查找效率,可以采取的正确措施是I.增大装填(载)因子II.设计冲突(碰撞)少的散列函数III.处理冲突(碰撞)时防止产生聚集(堆积)现象A.仅 I B.仅 II C.仅 I、II D.仅 II、III10.为实现快速排序算法,待排序序列宜采用的存储方式是11.已知序列 25,13,10,12,9是大根堆,在序列尾部插入新元素 18,将其再调整为大根堆,调整过程中元素之间进行的比较
11、次数是41.(8 分)已知有 6 个顶点(顶点编号为 0 5)的有向带权图 G,其邻接矩阵A 为上三角矩阵,按行为主序(行优 先)保存在如下的一维数组中。要求:(1)写出图 G 的邻接矩阵 A。(2)画出有向带权图 G。(3)求图 G 的关键路径,并计算该关键路径的长度。42.(15 分)一个长度为 L(L1)的升序序列 S,处在第L/2个位置的数称为S 的中位数。例如,假设序列 S1=(11,13,15,17,19),则 S1 的中位数是 15。两个序列的中位数是含它们所有元素的升序序列的中位数。例如,假设 S2=(2,4,6,8,20),则 S1 和 S2 的中位数是 11。现有两个等长升
12、序序列 A 和 B,试设计一个在时间和空间两方面都尽可能高效的算法,找出两个序列 A 和 B 的中位数。要求:(1)给出算法的基本设计思想。(2)根据设计思想,采用 C 或 C+或 JAVA 语言描述算法,关键之处给出注释。(3)说明你所设计算法的时间复杂度和空间复杂度。20121、求整数 n(n0)阶乘的算法如下,其时间复杂度是()intfact(intn)if(n=1)return1;returnn*fact(n-1);A.O(log2n)B.O(n)C.(nlog2n)D.O(n2)2、已知操作符包括+、-、*、/、(和)。将中缀表达式 a+b-a*(c+d)/e-f)+g 转换为等价的
13、后缀表达式 ab+acd+e/f-*-g+时,用栈来存放暂时还不能确定运算次序的操作符,假设栈初始时为空,则转换过程中同时保存栈中的操作符的最大个数是()3、假设一颗二叉树的前序遍历序列为 a,e,b,d,c,后续遍历序列为 b,c,d,e,a,则根节点的孩子节点()4、假设平衡二叉树的高度为 6,且所有非叶节点的平衡因子均为 1,则该平衡二叉树的节点总数为()5、对有 n 个节点、e 条边且使用邻接表存储的有向图进行广度优先遍历,其算法时间复杂度()A.O(n)B.O(e)C.O(n+e)D.O(n*e)6、假设用邻接矩阵存储有向图,矩阵中主对角线以下的元素均为零,则关于该图拓扑序列的结构是
14、()A.存在,且唯一B.存在,且不唯一7、如下有向带权图,假设采用迪杰斯特拉Dijkstra算法求源点 a 到其他各顶点的最短路径,得到的第一条最短路径的目标顶点是b,第二条最短路径的目标顶点是 c,后续得到的其余各最短路径的目标顶点依次是()A.d,e,fB.e,d,fC.f,d,eD.f,e,d8、以下关于最小生成树的说法中,正确的选项是()、最小生成树的代价唯一、所有权值最小的边一定会出现在所有的最小生成树中、使用普里姆Prim算法从不同顶点开始得到的最小生成树一定相同、使用普里姆算法和克鲁斯卡尔Kruskal算法得到的最小生成树总不相同、9、已知一棵 3 阶 B-树,如以下图所示。删除
15、关键字 78 得到一棵新 B-树,其最右叶结点中的关键字是()B.60,62C.62,6510、在内部排序过程中,对尚未确定最终位置的所有元素进行一遍处理称为一趟排序。以下排序方法中,每一趟排序结束都至少能够确定一个元素最终位置的方法是().简单项选择择排序.希尔排序.快速排序.堆排序.二路归并排序、11对一待排序序列分别进行折半插入排序和直接插入排序,两者之间可能的不同之处是()二、问答题。二、问答题。41、10 分设有 6 个有序表 A、B、C、D、E、F,分别含有10、35、40、50、60 和 200 个数据元素,各表中元素按升序排列。要求通过 5 次两两合并,将 6 个表最终合并成
16、1 个升序表,并在最坏情况下比较的总次数到达最小。请答复以下问题。1给出完整的合并过程,并求出最坏情况下比较的总次数。2根据你的合并过程,描述 N(N2)个不等长升序表的合并策略,并说明理由。42、13 分假定采用带头结点的单链表保存单词,当两个单词有相同的后时缀,则可共享相同的后缀存储空间,例如,“loaging”和“being”,如以下图所示。设 str1 和 str2 分别指向两个单词所在单链表的头结点,链表结点结构为data,next,请设计一个时间上尽可能高效的算法,找出由 str1 和 str2 所指向两个链表共同后缀的起始位置如图中字符 i 所在结点的位置 p。要求:1给出算法的
17、基本设计思想。2 根据设计思想,采用 C 或 C+或 java 语言描述算法关键之处给出注释。3说明你所设计算法的时复杂度。201320131.已知两个长度分别为 m 和 n 的升序链表,假设将它们合并为一个长度为m+n 的降序链表,则最坏情况下的时间复杂度是A.O(n)B.O(m*n)C.O(min(m,n)D.O(max(m,n)2.一个栈的入栈序列为1,2,3,n,其出栈序列是 p1,p2,p3,pn。假设p2=3,则 p3 可能取值的个数是:A.n-3B.n-2C.n-1D.无法确定3.假设将关键字 1,2,3,4,5,6,7 依次插入到初始为空的平衡二叉树T 中,则 T 中平衡因子为
18、 0 的分支结点的个数是A.0B.1C.2D.34.已知三叉树 T 中 6 个叶结点的权分别是 2,3,4,5,6,7,T 的带权外部路径长度最小是A.27B.46C.54D.565.假设 X 是后序线索二叉树中的叶结点,且 X 存在左兄弟结点 Y,则 X 的右线索指向的是A.X 的父结点B.以 Y 为根的子树的最左下结点C.X 的左兄弟结点 YD.以 Y 为根的子树的最右下结点6.在任意一棵非空二叉排序树 T1 中,删除某结点 v 之后形成二叉排序树T2,再将 v 插入 T2 形成二叉排序树 T3。以下关于 T1 与 T3 的表达中,正确的选项是I.假设 v 是 T1 的叶结点,则 T1 与
19、 T3 不同II.假设 v 是 T1 的叶结点,则 T1 与 T3 相同III.假设 v 不是 T1 的叶结点,则 T1 与 T3 不同IV.假设 v 不是 T1 的叶结点,则 T1 与 T3 相同A.仅 I、IIIB.仅 I、IVC.仅 II、IIID.仅 II、IV7.设图的邻接矩阵 A 如下所示。各顶点的度依次是A.1,2,1,2B.2,2,1,1C.3,4,2,3D.4,4,2,28.假设对如下无向图进行遍历,则以下选项中,不是广度优先遍历序列的是A.h,c,a,b,d,e,g,f B.e,a,f,g,b,h,c,dC.d,b,c,a,h,e,f,g D.a,b,c,d,h,e,f,g
20、9、以下的 AOE 网表示一项包含 8 个活动的工程。通过同时加快假设干活动的进度可以缩短整个工程的工期。以下选项中,加快其进度就可以缩短整个工程的工期的是:A c和 eB d 和 eC f 和 dDf 和 h10、在一棵高为 2 的 5 阶 B 树中,所含关键字的个数最少是A 5B 7C 8D14A=(0,5,5,3,5,7,5,5),侧 5 为主元素;又如 A=(0,5,5,3,5,1,5,7),则A中没有主元素。假设 A中的 n 个元素保存在一个一维数组中,请计一个尽可能高效的算法,找出A的主元素。假设存在主元素,则输出该元素;否则输出-1。要求:1给出算法的基本设计思想。2根据设计思想
21、,采用C 或 C+或 Java 语言描述算法,关键之处给出释。3说明你所设计算法的时间复杂度和空间复杂度。42.10分 设 包 含4 个数据元 素的集 合S=do,for,repeat,while,各元素查找概率依次为:,p3=0.15,。将S 保存在一个长度为 4 的顺序表中,采用折半查找法,查找成功时的平均查找长度为。请答复:1假设采用顺序存储结构保存 S,且要求平均查找长度更短,则元素应如何排列?应使用何种查找方法?查找成功时的平均查找长度是多少?2假设采用链式存储结构保存 S,且要求平均查找长度更短,则元素应如何排列?应使用何种查找方法?查找成功时的平均查找长度是多少?20141.以下
22、程常段的时间复杂度是count=0;for(k=1;k=n;k*=2)for(j=1;j=n;j+1)count+;A.O(log2n)B.O(n)C.O(nlog2n)D.O(n2)2.假设栈初始为空,将中缀表达式a bcdef后缀表达式的过程中,当扫描到 f 时,栈中的元素依次是A B.C.g转换为等价 D.3.循环两列放在一维数组 A0M-1中,end1 指向队头元素,end2 指向队尾元素的后一个位置。假设队列两端均可进行入队和出队操作,队列中最多能容纳 M-1 个元素。初始时为空,以下判断队空和队满的条件中,正确的选项是A.队空:end1=end2;队满:end1=(end2+1)m
23、odMB.队空:end1=end2;队满:end2=(end1+1)mod(M-1)C.队空:end2=(end1+1)modM;队满:end1=end2+1modMD.队空:end1=end2+1modM;队满:end2=(end1+1)mod(M-1)4.假设对如下的二叉树进行中序线索化,则结点 x 的左、右线索指向的结点分别是A.e,cB.e,aC.d,cD.b,aabcdx5.将森林 F 转换为对应的二叉树 T,F 中叶结点的个数等于A.T 中叶结点的个数B.T 中度为 1 的结点个数6.5 个字符有如下 4 种编码方案,不是前缀编码的是A.01,0000,0001,001,1B.01
24、1,000,001,010,1C.000,001,010,011,100D.000,001,010,011,1007.对如下所示的有向图进行拓扑排序,得到的拓扑序列可能是A.3,1,2,4,5,6B.3,1,2,4,6,5C.3,1,4,2,5,6D.3,1,4,2,6,514362e58.用哈希散列方法处理冲突碰撞时可能出现堆积聚集现象,以下选项中,会受堆积现象直接影响的是A.存储效率B.数列函数9.在一棵具有 15 个关键字的 4 阶 B 树中,含关键字的结点数最多是10.用希尔排序方法对一个数据序列进行排序时,假设第 1 趟排序结果为9,1,4,13,7,8,20,23,15,则该趟排序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 数据结构 今年 考研 答案
限制150内