2012年暨南大学数据结构考研真题

合集下载

暨南大学830数据结构2010,2012--2020年考研真题

暨南大学830数据结构2010,2012--2020年考研真题

考生注意:所有答案必须写在答题纸(卷)上,写在本试题上一律不给分。
一、 单项选择题(每题 2 分,共 30 分)
1. 下述关于顺序存储结构优点的说法,哪个是正确的( )
A. 插入运算方便
B. 可方便地用于各种逻辑结构的存储表示
C. 存储密度大
D. 删除运算方便
2. 假设根结点为第 1 层,深度为 h 层的二叉树至少有( ) 个结点(h>1);
A.3
B.4
C.5
D.6
13. 有一个 100*90 的整数稀疏矩阵,其中非 0 元素个数为 10;设每个整数占用 3 个字节,则
用三元组表示该矩阵时,总共需要的存储空间为( )字节。
A.30
B.33
C.90
D.99
14. 在一个双向链表中,当删除结点 p 时,错误的操作序列为 ( )。
A. p=p->prev; p->next->prev=p; p->next=p->next->next;
2020 年全国硕士研究生统一入学考试自命题试题 B 卷
********************************************************************************************
学科、专业名称:网络空间安全 研究方向:网络空间安全 083900 考试科目名称及代码:数据结构 830
4. 以下关于递归算法的论述,不正确的是( )
A. 递归算法的代码可读性好
B. 递归算法可以提高程序运行效率
C. 递归调用层次太深有可能造成堆栈溢出 D. 递归调用层次太深会占用大量内存
5. 设有字符集合{4,6,3,W,S},将字符序列 6W43S 中的字符按顺序进入堆栈,出栈可发生在任

2012年数据结构与算法参考答案

2012年数据结构与算法参考答案

2012年数据结构与算法参考答案一、填空题1. 顺序存储链式存储2. BDCA3. 132454. Head【Tail【Head【Tail(LS)】】】5. 36. 1297. 08. O(n^2)二、选择题1.A2.C3.D4.D5.A6.A7.B8.B9.D 10.C三、判断题1.✕2. ✓3. ✓4.✓5.✕6.✕7. ✓8. ✕9. ✓10.✕四、应用题1. (1)数(a)的先根序列:ABCDEF数(a)的后根序列:BDEFCA(2)先序:ABCDEFGHIJK中序:BDEFCAIJKHG(3)如下图:ABGH CI JKDEF2. (1) 邻接矩阵:⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡∞58∞∞∞∞∞5∞∞722∞∞8∞∞4∞∞7∞∞74∞∞∞∞6∞2∞∞∞4∞∞∞2∞∞4∞∞8∞∞7∞∞∞∞8∞∞∞6∞88∞ 邻接表:01234567(2) 深度优先搜索树为:(答案不唯一)V0V1V5V4V6V7V2V3(3)最小生成树:3. 解:由线性探测法解决冲突时所建哈希表如下:ASL=(1*5+2*4+3)/10=1.64. (1) 冒泡排序一趟结果:10、4、3、6、12、1、9、18、8、18+(2) 快速排序一趟结果:8、9、4、3、6、1、10、12、18+、18(3) 增量分别为5、3、1结果如下:○110、1、4、3、6、12、18、9、18+、8○23、1、4、8、6、12、10、9、18+、18○31、3、4、6、8、9、10、12、18+、18(4) 初始堆:18、18+、12、10、8、4、1、9、3、6一趟排序结果:18+、10、12、9、8、4、1、6、3、18五、程序填空题1.(1)查询链表的尾结点(2)将第一个结点链接到链表的尾部,作为新的尾结点(3)返回的线性表为(a2,a3,..,,an,a1)2.(1)(2)中序遍历二叉树,按遍历序列中叶子结点数据域的值构建一个以Leafhead为头指针的逆序单链表,或按二叉树中叶子结点数据自右至左链接成一个链表六、算法设计题1.(1) void exam_1(Linklist,La,int,x){p=La→next; q=p; k=0; // p为工作指针pre=la;la →next=NULL; . // q指最小元素while(p&&p→data<x){//比x小的数递减r =p→next;p→next=La →next;La →next=p;p=r ; //置逆}q→next=p;pre=q; //重新链接while(p→data==x){ //考察等于x的情况pre=p;p=p→next;} // whilewhile(p){ // k为计数器k+ +;x=p→data; //避免重复计算} // while(p)} // exam_1(2)typedef int datatype;typedef struct node {datatype data; struct node *next;}lklist;void exam_2(lklist *&head){lklist *p,*q,*s;for(p=head;p!=0;p=p->next){for(q=p->next,s=q;q!=0;if (q->data==p->data){s->next=q->next; free(q);q=s->next;}else{s=q,q=q->next;}}}(3)template<classT>voidSingleList<T>::select_sort(){Node<T>*p,*r,*small;p=first->link;if(p)for(;p->link;p=p->link){for(small=p,r=p->link;r;r=r->link)if(small->data>r->data)small=r;if(small!=p)swap(p->data,small->data);}};2.(1)bool Parent(BiTree *root,TElemType x) //查找值为X,X数据类型为TElemType的结点的双亲值{if(root == NULL){print("二叉树是空树");return false;}if(root->data==x){printf("根结点的值为x,没有双亲");return false;}if(root->lchild->data == x || root->rchild->data == x){printf("找到x的双亲结点,双亲结点值为%d",root->data);return true;}if(Parent(root->lchild,x)==true) return true; //递归调用Parent函数,若找到结点X的双亲,返回if(Parent(root->rchild,x)==true) return true;return false;}(2) 参考思路:类似按层遍历的方式,发现空节点之后看看其后还有没有树节点,没有,则是完全二叉树,使用队列帮助实现Status iscompletetree(BiTree T)//判断是否是完全二叉树、{LinkQueue Q; //声明一个对象BiTree p;p=T;if(!T)return 0;enqueue(Q,p); //结点P入队列while(queueempty(Q)) //判断队列是不是空的{dequeue(Q,p); //出队列if(p){enqueue(Q,p->lchild);enqueue(Q,p->rchild);}if(!p){while(queueempty(Q)){dequeue(Q,p->rchild);if(p) //空节点后还有节点{printf("不是完全二叉树");return ERROR;}}}}return OK;}(3)参考思路:二叉排序树中,可以通过中序遍历的方式实现结点数据的递增遍历和打印,在打印前,可以比较打印的数据是否相同,若相同,记录相同数据的个数,不打印重复点void printnode(BiTree p){static ccount = 0; //记录重复元素个数static BiTree p0=NULL;//记录结点p的前一个结点if (p){printnode(p->left);If(p0->data==p->data) count++;if (p0==NULL || p0->data!=p->data){If(count!=0) printf(“有%d个%d元素”,count,p0->data);printf("%d ", p->data);p0 = p;count = 0;}printnode(p->right);}}。

2012数据结构试卷A及答案-副本(2)

2012数据结构试卷A及答案-副本(2)

2012数据结构试卷A及答案-副本(2)stored at 676(10), and every element occupies one space. “(10)” means that the number is presented in decimals. Then the element A[3][3](10) is at position:( B )(A) 692 (B) 668 (C) 650 (D) 708(9) Which statement is not correct among the following four: ( A)(A)The number of empty sub-trees in a non-empty binary tree is one less than thenumber of nodes in the tree.(B)The Mergesort is a stable sorting algorithm.(C)The root of a binary tree transferred from a general tree has only left child.(D)A sector is the smallest unit of allocation for a record, so all records occupy amultiple of the sector size.(10) Assume that we have eight records, with key values A to H, and that they are initially placedin alphabetical order. Now, consider the result of applying the following access pattern: F D FG E G F A D F G E if the list is organized by the transpose heuristic, then the final list will be( B ).(A)A F C D H G E B (B) A B F D G E C H(C) A B F G D C E H (D) A H F D G E C B2. Fill the blank with correct C++ codes: (18 scores)(1)Given an array storing integers ordered by value, modify the binary searchroutines to return the position of the first integer with the least value greater than K when K itself does not appear in thearray. Return ERROR if the greatest value in the array is less than K: (14 scores)// Return position of lest element >= Kint newbinary(int array[], int n, int K) {int l = -1;int r = n; // l and r beyond array boundswhile (l+1 != r) { // Stop when l and r meet___ int i=(l+r)/2_____; // Check middle of remaining subarrayif (K < array[i]) __ r=i ___; // In left halfif (K == array[i]) __ return i___; // Found itif (K > array[i]) ___ l=i ___ // In right half}// K is not in array or the greatest value is less than Kif K< array[n-1] or r!=nthen return r; // the first integer with the least value greater than K// when K itself does not appear in the arrayelse return ERROR;// the greatest value in the array is less than K}(2)The height of the shortest tree and the tallest tree with both n nodes is respectively _2_or n(n<2) and __n_ , suppose that the height of the one-node tree is 1 ( 4 scores)3. Please calculate the number of binary trees in different shape with 5 nodes in total, and 6 nodes? (4 scores) 5:42, 6:132,C 2n n /n+14. A certain binary tree has the preorder enumeration as ABCDFEGIHJ and the inorder enumeration as BCDAEFGHIJ. Try todraw the binary tree and give the postorder enumeration. (The process of your solution is required) (6 scores)Postorder enumeration : DCBEHJIGFA5. Trace by hand the execution of Radix-sort algorithm on the array : int a[] = {265 301 751 129 937 863 742 694 076 438}.(6 scores)initial: 265 301 751 129 937 863 742 694 076 438pass 1: [] [301 751] [742] [863] [694] [265] [076] [937] [438] [129] pass 2: [301] [] [129] [937 438] [742] [751] [863 265] [076] [] [694] pass 3: [075] [129] [265] [301] [438] [] [694] [742 751] [863] [937] final sorted array: 075 129 265 301 438 694 742 751 8639376. (a) Describe simply the main tasks of the two phases of external sorting. (4 scores)The task of first phase is to break the files into large initial runs by replacement selection; the second phase is to merge the runs together to form a single sorted run file.(b)Assume that working memory is 256KB broken into blocks of 8192 bytes (there is also additional space available for I/O buffers, program variables, etc.) What is the expected size for the largest file that can be merged using replacement selection followed by two passes of multi-way merge? Explain how you got your answer. (4 scores)Since working memory is 256KB and the blocksize is8KB,the working memory holds 32 blocks. The expected runlength is 512KB, so a single pass of multiway merge forms runs of length 512KB*32=16MB. The second pass then forms a run as large as 16MB*32=512MB.7. Assume a disk drive is configured as follows. The total storage is approximately675M divided among 15 surfaces. Each surface has 612 tracks; there are 144 sectors/track, 512 byte/sector, and 16 sectors/cluster. The interleaving factor is 3. Thedisk turns at 7200rmp (8.3ms/r). The track-to-track seek time is 20 ms, and the average seek time is 80 ms. Now how long does it take to read all of the data in a 360 KB file on the disk? Assume that the file ’s clusters are spread randomly across the disk. A seek must be performed each time the I/O reader moves to a new track. Show your calculations. (The process of your solution is required) (8cores)A cluster holds 16*0.5K = 8K. Thus, the file requires360/8=45clusters.The time to read a cluster is seek time to the cluster+ latency time + (interleaf factor × rotation time).Average seek time is defined to be 80 ms. Latency time is 0.5 *8.3, and cluster rotation time is 3 * (16/144)*8.3.Seek time for the total file read time is 45* (80 + 0.5 * 8.3+ 3 * (16/144)*8.3 ) = 3911.258. Using closed hashing, with double hashing to resolve collisions, insert the following keys into a hash table of eleven slots (the slots are numbered 0 through 10). The hash functions to be used are H1 and H2, defined below. You should show the hash table after all eight keys have been inserted. Be sure to indicate how you areusing H1 and H2 to do the hashing. ( The process of your solution is required) H1(k) = 3k mod 11 H2(k) = 7k mod 10+1 Keys: 22, 31, 19, 35, 41, 13, 1, 67. (8 scores)Answer:H 1(22)=0, H 1(31)=5, H 1(19)=2, H 1(35)=6, no conflictWhen H 1(41)=2, H 2(41)=8 (2+8*1)%11=10,so 41 enters the 10rd slot; H 1(13)=6, H 2(13)=2 (6+1*2)%11=8, so 13 enters the 8th slot; H 1(1)=3, so 1 enters 3 ;H 1(67)=3, H 2(67)=10 (3+2*10)%11= 1 so 67 enters 1(pass by 2)9.. Converting from a general tree to a binary tree. (4 scores)10.Figure 1 Example graph(a) Draw the adjacency matrix representation and adjacency list representation forthe graph of the figure-1. (6)(b) Use Dijkstra’s Algorithm to find the shortest paths from Vertex1 to all the other vertices. (6)(c) Use Kruskal’s algorithm to find the minimum-cost spanning tree. (4)(a) adjacency matrix1 2 3 4 5 6--------------------------1 | 10 202 |2 | 103 5 |3 | 3 15 |4 | 205 11 10 |5 | 15 11 3 |6 | 2 10 3 |--------------------------adjacency list:1 -> 2(10) -> 4(20) -> 6(2) -> \2 -> 1(10) -> 3(3) -> 4(5) -> \3 -> 2(3) -> 5(15) -> \4 -> 1(20) -> 2(5) -> 5(11) -> 6(10) -> \5 -> 3(15) -> 4(11) -> 6(3) -> \6 -> 1(2) -> 4(10) -> 5(3) -> \(b) 1 to 2: 10 (1,2);1 to 3: 13(1,2,3);1 to 4: 12 (1,6,4);1 to 5: 5 (1,6,5);1 to 6:2 (1,6,);(c)。

计算机专业基础综合数据结构(线性表)历年真题试卷汇编4

计算机专业基础综合数据结构(线性表)历年真题试卷汇编4

计算机专业基础综合数据结构(线性表)历年真题试卷汇编4(总分:66.00,做题时间:90分钟)一、单项选择题(总题数:15,分数:30.00)1.静态链表中指针表示的是( )。

【中南大学2003二、2(1分)】(分数:2.00)A.下一元素的地址B.内存储器的地址C.下一元素在数组中的位置√D.左链或右链指向的元素的地址解析:2.链表不具有的特点是( )。

【电子科技大学2012一、3(2分)】【福州大学1998一、8(2分)】【南京理工大学2005一、13(1分)】(分数:2.00)A.插入、删除不需要移动元素B.可随机访问任一元素√C.不必事先估计存储空间D.所需空间与线性长度成正比解析:3.在n个结点的线性表的数组实现中,算法的时间复杂性是O(1)的操作是( )。

【哈尔滨工业大学2003二、1(1分)】(分数:2.00)A.访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)√B.在第i个结点后插入一个新结点(1≤i≤n)C.删除第i个结点(1≤f≤n)D.以上都不对解析:4.(1)静态链表既有顺序存储的优点,又有动态链表的优点。

所以,它存取表中第f个元素的时间与i无关。

(2)静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。

(3)静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。

以上错误的是( )。

【南京理工大学2000一、3(1.5分)】(分数:2.00)A.(1),(2)B.(1) √C.(1),(2),(3)D.(2)解析:5.静态链表与动态链表相比,其缺点是( )。

【北京理工大学2006九、5(1分)】(分数:2.00)A.插入、删除时需移动较多数据B.有可能浪费较多存储空间√C.不能随机存取D.以上都不是解析:解析:静态链表首先要定义一个一维数组空间,每个数组元素有两个分量,一是数据元素的值,二是指针。

指针指向下一个元素在数组中的位置(下标),插入和删除时只需修改指针,不移动数据。

2012计算机考研真题

2012计算机考研真题

2012计算机考研真题2012年计算机考研真题一、概述2012年的计算机考研真题是考察计算机专业相关知识和技能的一套考卷。

下面将按照试题的顺序逐一进行梳理和解答。

二、计算机网络1.题目内容给定一个以太网分组传输的局域网,其帧最大传输单元(MTU)为1500字节。

现有一个3000字节的IP数据报要传输到该局域网内的主机A处。

已知该局域网的数据链路层帧头长度为20字节,数据链路层帧尾长度为20字节,IP层头长度为20字节。

则将该数据报在给定的局域网上发送时,至少需要分组的数量是几个?2.答案及解析要计算数据报在给定局域网上发送时需要分组的数量,需要首先计算每个数据报载荷的长度。

因为该局域网的帧最大传输单元(MTU)为1500字节,而数据链路层帧头和帧尾总长为20字节。

所以每个数据报的载荷长度为1500 - 20 - 20 = 1460字节。

根据题目中给出的数据,IP数据报的总长度为3000字节,减去IP 层头部长度(20字节)后,剩余的部分即是数据报的载荷长度。

所以剩余部分的长度为3000 - 20 = 2980字节。

接下来,我们需要计算总共需要发送的分组数量。

将剩余长度除以每个分组的载荷长度,即可得到分组的数量。

所以,分组的数量为2980 / 1460 = 2 (向上取整)。

答案:该数据报在给定的局域网上发送时,至少需要分组的数量是2个。

三、操作系统1.题目内容给出以下关于多级反馈队列调度算法的描述:(1) 时间片长度逐级递增;(2) 进程按照优先级进行排队;请问,该算法的调度策略属于何种调度算法?2.答案及解析根据题目所给的描述,我们可以确定这是一个多级反馈队列调度算法。

该算法的特点是:时间片长度逐级递增,进程按照优先级进行排队。

这意味着优先级较高的进程会先获得执行机会,而时间片长度较短的队列则用于运行优先级较低的进程。

综上所述,该调度算法的调度策略属于多级反馈队列调度算法。

四、数据结构1.题目内容对于一个长度为n的顺序表,删除其中第i个元素的时间复杂度为O(___)。

《暨南大学830数据结构2011-2019年考研真题及答案解析》

《暨南大学830数据结构2011-2019年考研真题及答案解析》
Ⅱ 历年考研真题试卷答案解析.............................................................................................49
暨南大学 2011 年招收攻读硕士学位研究生入学考试试题答案解析................................ 49 暨南大学 2012 年招收攻读硕士学位研究生入学考试试题答案解析................................ 64 暨南大学 2013 年招收攻读硕士学位研究生入学考试试题答案解析................................ 79 暨南大学 2014 年招收攻读硕士学位研究生入学考试试题答案解析(A 卷)..................... 96 暨南大学 2015 年招收攻读硕士学位研究生入学考试试题答案解析(B 卷)................... 113 暨南大学 2016 年招收攻读硕士学位研究生入学考试试题答案解析(A 卷)................... 130 暨南大学 2017 年招收攻读硕士学位研究生入学考试试题答案解析(A 卷)................... 144
3. 线性表的动态链表存储结构与顺序存储结构相比,优点是( )。
A. 所有的操作算法实现简单
B. 便于随机存取
C. 便于插入与删除
D. 便于节省存储器空间
4.若进栈序列为 1,2,3,4,5,6, 且进栈和出栈可以穿插进行,则可能出现的出
栈序列为( )。
A. 3,2,6,1,4,5
B.5,6,4,2,3,1
五、算法填空, (每空 2 分,共 16 分)
1.下面的算法是一个在元素按值递增排列,并以带头结点的单链表作存储结构的线性表

11、【计算机】计算机2012年真题及解析

11、【计算机】计算机2012年真题及解析

钻石卡高级辅导系统——全程、全方位、系统化解决考研所有问题,成功率趋近 100% 万学教育官方网址:
4
钻石卡高级辅导
„-‟、 „*‟、 „(‟、„(‟、„+‟依次入栈,此时,栈中元素个数为 5,分别为:- * ( ( + ; „+‟出栈,栈中元素个数为 4,分别为:- * ( ( ; „)‟入栈,与栈顶元素„(‟配成一对,都出栈,此时,栈中元素个数为 3,分别为:- * ( ; „/‟入栈,栈中元素个数为 4,分别为:- * ( / ; „/‟出栈,栈中元素个数为 3,分别为:- * ( ; „-‟入栈,栈中元素个数为 4,分别为:- * ( - ; „-‟出栈,栈中元素个数为 3,分别为:- * ( ; „)‟入栈,与栈顶元素„(‟配成一对,都出栈,此时,栈中元素个数为 2,分别为:- * ; „*‟出栈,栈中元素个数为 1:- ; „-‟出栈,栈空; „+‟入栈,栈中元素个数为 1:+ ; „+‟出栈,栈空; 根据以上分析可知,在中缀向后缀转换过程中,栈中操作符个数最多有 5 个,选 A。 3. 若一棵二叉树的前序遍历序列为 a、e、b、d、c,后序遍历序列为 b、c、d、e、a,则根结点的孩子结点 A. 只有 e 【答案】A 【解析】题中已知,二叉树的前序遍历序列为 a、e、b、d、c,后序遍历序列为 b、c、d、e、a,则可确定二叉树的根节点为 a。 前序遍历访问次序为:访问根节点;前序遍历左子树;前序遍历右子树。从而可以确定,e 为左子树或右子树的根节点,即根节点 a 的孩子结点。 ① 假设 e 为左子树根结点,则根据后序遍历结果可知,b、c、d 一定在左子树上,且以 e 为根节点,所以,b、c、d 不可能是 a 的孩子结点。 ② 若 e 为右子树根节点,根据前序遍历结果可知,此二叉树没有左子树,故只有 e 是 a 的孩子结点。 4. 若平衡二叉树的高度为 6,且所有非叶结点的平衡因子均为 1,则该平衡二叉树的结点总数为 : B. 有 e、b C. 有 e、c D. 无法确定

2012数据结构题

2012数据结构题

●__(4)__的特点是数据结构中元素的存储地址与其关键字之间存在某种映射关系。

(4)A.树形存储结构B.链式存储结构C.索引存储结构D.散列存储结构●若循环队列以数组 Q[O..m-1] 作为其存储结构变量 rear 表示循环队列中队尾元素的实际位置,其移动按 rear=(rear+1) mod m 进行,变量 length 表示当前循环队列中的元素个数,则循环队列的队首元素的实际位置是__(5)__。

(5)A.rear-length B.(rear-length+m) mod mC.(1+rear+m-length) mod m D.m-length●一个含有n个顶点和e条边的简单无向图,在其邻接矩阵存储结构中共有__(6)__个零元素。

(6)A.e B.2e C.n2-e D.n2-2e●若一棵哈夫曼(Huffman)树共有9个顶点,则其叶子结点的个数为__(7)__。

(7)A.4 B.5 C.6 D.7●若采用邻接矩阵来存储简单有向图,则其某一个顶点i的入度等于该矩阵__(8)__。

(8)A.第i行中值为1的元素个数 B.所有值为1的元素总数C.第i行及第i列中值为1的元素总个数D.第i列中值为1的元素个数●在—棵度为3的树中,若有2个度为3的结点,有1个度为2的结点,则有__(9)__个度为0的结点。

(9)A.4 B.5 C.6 D.7●设结点x和y是二叉树中任意的两个结点,在该二叉树的先根遍历序列中x在y之前,而在其后根遍历序列中x在y之后,则x和y的关系是__(10)__。

(10)A.x是y的左兄弟B.x是y的右兄弟C.x是y的祖先D.x是y的后裔●设顺序存储的某线性表共有123个元素,按分块查找的要求等分为3块。

若对索引表采用顺序查找方法来确定子块,且在确定的子块中也采用顺序查找方法,则在等概率的情况下,分块查找成功的平均查找长度为__(11)__。

(11)A.21 B.23 C.41 D.62DCDBDCCB(顺序查找平均查找长度是:(n+1)/2 (1+3)/2+(41+1)/2=23 123/3=41)●在一棵完全二叉树中,其根的序号为1,_(33)_可判定序号为p和q的两个结点是否在同一层。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2012年全国硕士研究生统一入学考试自命题试题
********************************************************************************************
学科与专业名称:计算机技术,软件工程
考试科目代码与名称:830 数据结构
考生注意:所有答案必须写在答题纸(卷)上,写在本试题上一律不给分。

一. 选择题(每题2分,共30分)
1.队列操作的原则是()。

A. 先进先出
B. 后进先出
C. 只能进行插入
D. 只能进行删除
2. 一个栈的进栈序列是a, b, c, d, e, 则栈的不可能的输出序列是()。

A. edcba
B. decba
C. dceab
D. abcde
3. 采用顺序查找法查找长度为n的线性表时,每个元素的平均查找长度为()。

A. n
B. n/2
C.(n+1)/2
D.(n-1)/2
4. 线性表的链接实现有利于( )运算。

A. 读表元素
B.插入
C. 查找
D. 定位
5. 设单链表中指针p指着结点A,若要删除A之后的结点(若存在),则需要修改指针的操作为
( )。

A. p->next=p->next->next
B. p=p->next
C. p=p->next->next
D. p->next=p
6. 在内部排序中,排序时不稳定的有( )。

A. 插入排序
B. 冒泡排序
C. 快速排序
D. 归并排序
7.在AOE网中,完成工程的最短时间是()。

A.从源点到汇点的最长路径的长度B.从源点到汇点的最短路径的长度
C.最长的回路的长度D.最短的回路的长度
8.以下()方法所用辅助存储空间最大。

A.堆排序B.希尔排序C.快速排序D.归并排序
9.具有8个顶点的无向图至少应有()条边才能确保是一个连通图。

A.5 B.6 C.7 D.8
10. 对具有n个结点的有序表中折半查找时,其时间复杂度是()。

A.O(nlog2n)B.O(log2n)C.O(n)D.O(n2)
11.如果希望对平衡二叉树遍历的结果是升序的,应采用()遍历方法。

A.先序B.中序C.后序D.层次
考试科目:数据结构共5页,第1 页
考试科目:数据结构共5 页,第2 页
三.判断题(每题1分,共10分,正确的选t,错误的选f)
1.如果T2是由树T1转换而来的二叉树,那T1中结点的先序就是T2中结点的先序。

()2.在一个有向图的邻接表或逆邻接表中,如果某个顶点的链表为空,则该顶点的度一定为零。

()
3.线性表中的每一个元素都有一个前驱和后继元素。

()
4.按中序遍历一颗二叉排序树所得到的中序遍历序列f是一个递增序列。

()
5.若网中有几条关键路径,提高一条关键路径上的活动的速度,不能导致整个工程缩短工期。

()
6.一颗满二叉树同时又是一颗平衡树。

()
7.数据结构是研究数据的物理结构、逻辑结构以及它们之间的相互关系。

()
8. 拓扑排序是一种内部排序的算法。

( )
9.已知一颗树的先序序列和后序序列,一定能构造出该树。

()
10.n阶对称矩阵可压缩存储到n2/2个元的空间中。

( )
四. 简答题(50分)
1.给定关键字序列T=(65,57,45,39,12,98,86,35),采用快速排序算法,以第一个
元素为枢轴,对该序列由小到大排序,并写出具体排序过程。

(8分)
2.简述下列算法的功能。

(6分)
void Process(LinkList &L, int x, int y) { // L线性表的元素递增有序排列
LinkList p=L, q, s;
if ((p->next) && (x<=y))
{ while (p->next && p->next->data<=x) p=p->next;
If (p->next) return ERROR;
q=p->next;
while (q->next && q->next->data<y)
{ s=q; q=q->next; free(s); }
p->next=q->next;
free(q);
}
}
3.使用克鲁斯卡尔算法构造出图1所示的图G的一棵最小生成树(要求写出构造过程)。

(10
分)
图1
考试科目:数据结构共5 页,第3页
4.已知一个图如图2所示,若从顶点a出发,按深度优先搜索法进行遍历,写出可能得到
的一种顶点序列;按广度优先搜索法进行遍历,写出可能得到的一种顶点序列。

(4分)
图2
5.给定图3所示带权有向图及其邻接矩阵,利用Floyd算法,求每一对顶点之间的最短路
径及其路径长度(要求写出求解过程)。

(12分)
图3
6.给出一组关键字的序列为{ 12,15,34,37,39,22,38,66,74,80,107 },假设哈希函数为Hash(key)=key mod 11,画出按照链地址法处理冲突构造所得的哈希表,并在记录的查找概率相等的前提下,计算成功查找的平均查找长度。

(10分)
五.算法填空,(每空2分,共16分)
1.下面的算法将元素e加入队列Q中,请在处填上适当内容,使其成为一个完整算
法。

typedef struct QNode {
QElemType data;
struct QNode *next;
} QNode, *QueuePtr;
typedef struct {
QueuePtr front; // 队头指针
QueuePtr rear; // 队尾指针
} LinkQueue, * LinkQueuePtr;
Boolean EnQueue (LinkQueuePtr Q, QElemType e) { //元素e加入到队列Q中p = ;
if (!p) return FALSE;
考试科目:数据结构共5 页,第4页
考试科目:数据结构共5页,第5页。

相关文档
最新文档