大连海事大学2011研究生专业试题s数据结构部分
[908数据结构]大连海事大学2013年硕士研究生招生考试试题
![[908数据结构]大连海事大学2013年硕士研究生招生考试试题](https://img.taocdn.com/s3/m/f5675d5c84868762caaed5f6.png)
题号:908大连海事大学2013年硕士研究生招生考试试题考试科目:数据结构适用专业:计算机技术(专业学位),软件工程(专业学位)考生须知:1、所有答案必须写在答题纸上,写在试题纸上无效;2、考生不得在答题纸上作与答题内容无关的标记,否则试卷作废。
一、判断下列叙述是否正确。
(共20分,每小题1分)请在答卷上写出题号并用“√”或“×”回答。
1.顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。
2.因为线性表L是一个有序表,所以可采用折半查找方法来查找表中的数据元素,以减少查找成功时的ASL。
3.由于给定的有向无环图(DAG)中只有一个出度为0的顶点,所以该DAG的拓扑排序序列一定是唯一的。
4.若(u,v)是连通网络的一条最小权值的边,则一定存在一棵最小生成树包含(u,v)。
5.在一个AOE网中,若某一活动的最早开始时间和最迟开始时间相同,则该活动为关键活动。
6.在线索二叉树中,根据线索可以找到树中任何一个结点在相应遍历序列中的直接后继。
7.只要能够进行均匀映射的哈希函数就一定受欢迎。
8.能完全拓扑排序的有向图至少存在一个入度为0的顶点。
9.在哈夫曼树中,分支总数一定是偶数。
10.给定一棵的先序遍历序列和后序遍历序列,可以唯一地确定这棵树的结构。
11.哈夫曼树是最优二叉树,所以根结点到权值最大的叶结点之间的路径长度最长。
12.采用孩子―兄弟表示法可以唯一地表示一棵非空二叉树。
13.采用二叉链表作为存储结构,将一棵非空树转换成二叉树后,根结点没有右子树。
14.对任何长度为n>0的序列,任何基于关键字比较的排序算法的时间复杂度都不小于O(n╳log2n)。
15.提高外排序速度的核心工作是减少记录在内外存之间的I/O次数。
16.对任何序列进行排序,快速排序一定比简单插入排序快。
17.在一棵平衡二叉树插入新结点x,由于做了平衡旋转处理,所以,结点x一定不可能是叶子结点。
18.任何广义表都可以用树型结构加以表示。
2011年研究生入学考试联考数据结构部分综合应用题

2011年研究生入学考试联考数据结构部分综合应用题42.(15分)一个长度为L(L≥1)的升序序列S,处在第⎡⎤2/L个位置的数称为S的中位数。
例如,若序列S1={11,13,15,17,19},则S1的中位数为15,两个序列的中位数是含它们所有元素升序序列的中位数。
例如,若序列S2={2,4,6,8,10},则S1和S2的中位数为11。
现有两个等长的升序序列A和B,试设计一个在时间和空间两个方面都尽可能高效的算法,找出序列A和B的中位数。
要求:(1)给出算法的基本设计思想;(2)根据设计思想,采用C或C++或JA V A语言描述算法,关键之处给出注释;(3)说明你所设计算法的时间复杂度和空间复杂度。
(1)算法的基本设计思想:(5分)分别求两个升序序列A和B的中位数,设为a和b。
若a=b,则a或吧即为所求的中位数;否则,舍弃a、b中较小者r1=0;所在序列之较小一半,同时舍弃较大者所在序列之较大一半,要求两次舍弃的元素个数相同。
在保留的两个升序序列中,重复上述过程,直到两个序列中只含一个元素时为止,则较小者即为所求的中位数。
(2)算法实现:(8分)int M_Search(int A[],int B[],int n){int start1,end1, mid1,start2,end2,mid2;start1=0; end1=n-1;; start2=0;end2=n-1;while(start1!=end1||start2!=end2){mid1=(start1+end1)/2;mid2=(start2+end2)/2;if(A[mid1]==B[mid2]) return A[mid1];if(A[mid1]<B[mid2]){if((start1+end1)%2==0){start1=mid1;end2=mid2;}else{start1=mid1+1;end2=mid2;}}else{if((start1+end1)%2==0){end1=mid1;start2=mid2;}else{end1=mid1;start2=mid2+1;}}}return A[start1]<B[start2]? A[start1]:B[start2];}(3)上述所给算法的时间、空间复杂度分别是O(log2n)和O(1).(2分)VC6.0上机调试的源代码:#include<iostream.h>int M_Search(int A[],int B[],int n){int start1,end1, mid1,start2,end2,mid2;start1=0; end1=n-1; start2=0;end2=n-1;while(start1!=end1||start2!=end2){mid1=(start1+end1)/2;mid2=(start2+end2)/2;if(A[mid1]==B[mid2]) return A[mid1];if(A[mid1]<B[mid2]){if((start1+end1)%2==0){start1=mid1;end2=mid2;}else{start1=mid1+1;end2=mid2;}}else{if((start1+end1)%2==0){end1=mid1;start2=mid2;}else{end1=mid1;start2=mid2+1;}}}return A[start1]<B[start2]? A[start1]:B[start2];}int main(){const int max_nums=8;int a[max_nums],b[max_nums];int loop;cout<<"Input "<<max_nums<<" numbers to sort1:\n";for(loop=0;loop<=max_nums-1;loop++){cout<<"No."<<loop+1<<":";cin>>a[loop];}cout<<"Input "<<max_nums<<" numbers to sort2:\n";for(loop=0;loop<=max_nums-1;loop++){cout<<"No."<<loop+1<<":";cin>>b[loop];}cout<<"the middle number of the two arrays is: "<<M_Search(a,b,max_nums)<<endl;return 0;}运行结果:Input 8 numbers to sort1:No.1:1No.2:2No.3:3No.4:4No.5:5No.6:6No.7:7No.8:8Input 8 numbers to sort2:No.1:9No.2:10No.3:11No.4:12No.5:13No.6:14No.7:15No.8:16the middle number of the two arrays is: 8Press any key to continue。
2011辽宁省数据结构最新考试试题库

1、在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行( A )。
A)q->next=s; s->next=p; B)s->next=p->next; p->next=s;C)p->next=s->next; s->next=p D)p->next=s; s->next=q;2、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( D )存储方式最节省时间。
A)顺序表B)双链表C)带头结点的双循环链表D)单循环链表3、设有一个栈,元素的进栈次序为A, B, C, D, E,下列是不可能的出栈序列是( C )。
A) A, B, C, D, EB) B, C, D, E, AC) E, A, B, C, DD) E, D, C, B, A4、队列的操作的原则是( A )。
A)先进先出 B) 后进先出C) 只能进行插入 D) 只能进行删除5、串的逻辑结构与( D )的逻辑结构不同。
A)线性表 B)栈C)队列 D)树6、设给定问题的规模为变量n,解决该问题的算法所需时间为Tn=O(f(n)),Tn表示式中记号O表示( A )。
A)一个数量级别 B)一个平均值C)一个最大值 D)一个均方值7、链式存储的存储结构所占存储空间( A )。
A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针B)只有一部分,存放结点值C)只有一部分,存储表示结点间关系的指针D)分两部分,一部分存放结点值,另一部分存放结点所占单元数8、有一个有序表{1,4,6,10,18,35,42,53,67,71,78,84,92,99}。
当用二分查找法查找键值为84的结点时,经( B )比较后查找成功。
A) 4 B)3 C)2 D)129、向一个栈顶指针为hs的链栈中插入一个s结点时,应执行( D )。
A) hs->next=s; B) s->next=hs->next; hs->next=s;C) s->next=hs; hs=s; D) s->next=hs; hs=hs->next;10、下面关于线性表的叙述中,错误的是哪一个?( D )A)线性表采用顺序存储,必须占用一片连续的存储单元。
大连海事大学2011研究生专业试题s数据结构部分

管理科学与工程专业管理信息系统与数据结构数据结构部分(50分)一、简要回答下列问题(10分)1、简述堆排序的思想方法,以及为实现堆排序需要解决的如下两个问题的过程(以大顶堆为例)(7分)(1)如何在输出堆顶元素之后,调整剩余元素成为一个新的堆?(2)如何由一个无序序列建成一个堆?2、什么是ASL?写出ASL的定义(写出式子)(3分)二、单项选择题(10分)1、某程序的时间复杂度为(3n+nlog2n+n2+8),其数量级表示为()。
A.0(n)B.(nlog2n)C.0(n2)D. 0 (log2n)2、设有一个含150个表项的散列表,用线性探查法解决冲突,按关键码查询时找到一个表项的平均探查次数不超过1.5,则散列表项应能够至少容纳()个表项。
(设查找成功的平均查找长度为S n1={1+1/(1-a)}/2其中a为填装因子)A 。
400 B。
300 C。
450 D 6003、对于长度为9的有序顺序表,若采用折半查找,在等概率情况下查找成功的平均长度为()的值除以9.A.20B.18C.25D.224、在无向图中定义顶点V i与V j之间的路径为从V i到达V j的一个()A.顶点序列B.边序列C.权值总和D.边的条数5、已知一有向图的邻接表储存结构如图所示,根据有向图的深度优先遍历算法,从v1出发的顶点序列为()。
A.V1,V2,V3,V5,V4B.V1,V2,V3,V4,V5C.V1,V3,V4,V5,V2D.V1,V4,V3,V5,V2三、填空题(5分)1、在有序表A[1..30]中,按二分查找方法进行查找,查找长度为5的元素个数是______.2、在一个深度为K且具有最小结点数的完全二叉树上,按层次用自然数依次对结点编号,则编号最小的叶子的序号是______;编号是i的结点所在的层次号(根在1层)是________。
3、为了实现图的广度优先搜索,除了一个标志数组来标志已访问的图的结点外,还需______存放被访问的结点以实现遍历。
2011年考研计算机统考真题及答案解析

A.600 波特
B.1200 波特
C.4800 波特
D.9600 波特
35.数据链路层采用选择重传协议(SR)传输数据,发送方已发送了 0 ~ 3 号数据帧,现已
收到 1 号帧的确认,而 0、2 号帧依次超时,则此时需要重传的帧数是
A.1
B.2
C.3
D.4
36.下列选项中,对正确接收到的数据帧进行确认的 MAC 协议是
的中序遍历序列不.会是
A.1, 2, 3, 4
B.2, 3, 4, 1
C.3, 2, 4, 1
D.4, 3, 2, 1
6.已知一棵有 2011 个结点的树,其叶结点个数为 116,该树对应的二叉树中无右孩子的
结点个数是
A.115
B.116
C.1895
D.1896
7.对于下列关键字序列,不.可能构成某二叉排序树中一条查找路径的序列是
13.float 型数据通常用 IEEE 754 单精度浮点数格式表示。若编译器将 float 型变量 x 分配在
一个 32 位浮点寄存器 FR1 中,且 x = -8.25,则 FR1 的内容是
A.C104 0000H B.C242 0000H
C.C184 0000H
D.C1C2 0000H
14.下列各类存储器中,不.采用随机存取方式的是
C.进程 P 的全局变量
D.进程 P 中某线程的栈指针
26.用户程序发出磁盘 I/O 请求后,系统的正确处理流程是
A.用户程序→系统调用处理程序→中断处理程序→设备驱动程序
B.用户程序→系统调用处理程序→设备驱动程序→中断处理程序
C.用户程序→设备驱动程序→系统调用处理程序→中断处理程序
2011年数据结构A卷考试题

4.栈和队列的存储方式,既可以是顺序方式,又可以是链式方式。()
5.在有n个顶点的有向图中,若要使任意两点间可以互相到达,则至少需要n-1条弧。()
6.在索引顺序表中,实现分块查找,在等概率查找情况下,其平均查找长度不仅与表中元素个数有关,而且与每块中元素个数有关。
30.对基本有序的n个记录的表作快速排序算法的时间复杂度是(B)。
A.O(n) B.O(n2) C.O(nlogn) D.O(n3)
二、判断题(1*10=10分)
1.算法的时间复杂度是问题规模的函数,与输入的初始状态无关。()
2.链表是采用链式存储结构的线性表,进行插ห้องสมุดไป่ตู้、删除操作时,在链表中比在顺序存储结构中效率高。( )
五、算法设计题(7+8=15分)
1.已知两个整数集合A和B,它们的元素分别依元素值递增有序存放在两个单链表HA和HB中,编写一个函数求出这两个集合的并集C,并要求表示集合C的链表的结点仍按照元素值递增有序存放且使用原空间。
2.试用队列结构实现二叉链表存储的二叉树的层次遍历的算法。
青岛理工大学试卷纸A共6页第4页
()
7.对一棵二叉排序树按先序方法遍历得出的结点序列是从小到大的序列。( )
8.在n个结点的无向图中,若边数大于n-1,则该图必是连通图。()
9.在AOE图中,关键路径上某个活动的时间缩短,整个工程的时间也就必定缩短。()
10.一棵有n个结点的二叉树,从上到下,从左到右用自然数依次给予编号,则编号为i的结点的左儿子的编号为2i(2i< n),右儿子是2i+1(2i+1<n)。()
16.用邻接表存储的图进行广度优先遍历时,通常是采用(B)结构来实现算法的。
数据结构考试题库(含参考答案)

第1章绪论一、选择题1. 算法的计算量的大小称为计算的()。
【北京邮电大学2000二、3(20/8分)】A.效率 B.复杂性 C.现实性 D.难度2. 算法的时间复杂度取决于()【中科院计算所1998二、1(2分)】A.问题的规模 B.待处理数据的初态 C. A 和 B3.计算机算法指的是( 1),它必须具备( 2)这三个特性。
(1) A.计算方法 B.排序方法 C.解决问题的步骤序列 D.调度方法(2) A .可执行性、可移植性、可扩充性 B.可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D.易读性、稳定性、安全性【南京理工大学1999一、1(2分)【武汉交通科技大学1996一、1( 4 分)】4.一个算法应该是()。
【中山大学1998二、1(2分)】A.程序B.问题求解步骤的描述C.要满足五个基本特性D.A 和 C.5. 下面关于算法说法错误的是()【南京理工大学2000一、1(1.5分)】A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的6. 下面说法错误的是()【南京理工大学2000一、 2( 1.5分)】(1 )算法原地工作的含义是指不需要任何额外的辅助空间( 2)在相同的规模n 下,复杂度 O(n) 的算法在时间上总是优于复杂度nO(2 ) 的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低A. (1) B.(1),(2) C.(1),(4) D.(3)7.从逻辑上可以把数据结构分为()两大类。
【武汉交通科技大学1996 一、4( 2 分)】A.动态结构、静态结构B.顺序结构、链式结构C.线性结构、非线性结构D.初等结构、构造型结构8.以下与数据的存储结构无关的术语是()。
【北方交通大学2000二、 1(2分)】A.循环队列 B.链表 C.哈希表 D.栈9.以下数据结构中,哪一个是线性结构()?【北方交通大学2001一、 1(2分)】A.广义表 B.二叉树 C.稀疏矩阵 D.串10.以下那一个术语与数据的存储结构无关?()【北方交通大学2001一、 2(2 分)】A .栈 B.哈希表 C.线索树 D.双向链表11.在下面的程序段中,对 x 的赋值语句的频度为()【北京工商大学2001一、10( 3 分)】FOR i:=1TOn DOFOR j:=1TOn DOx:=x+1;A. O(2n)B. O(n)C. O(n2)D. O(logn 2 )12.程序段FOR i:=n-1DOWNTO1DOFOR j:=1 TO i DOIF A[j]>A[j+1]THEN A[j]与 A[j+1]对换;其中 n 为正整数,则最后一行的语句频度在最坏情况下是()A. O ( n)B. O(nlogn)C. O(n 3)D. O(n 2)【南京理工大学 1998 一、 1(2 分 ) 】13.以下哪个数据结构不是多型数据类型()【中山大学1999一、 3( 1 分)】A.栈B.广义表C.有向图D.字符串14.以下数据结构中,()是非线性数据结构【中山大学1999一、 4】A.树B.字符串C.队D.栈15.下列数据中,()是非线性数据结构。
数据结构与数据库技术2011(938)

浙江理工大学2011年硕士学位研究生招生入学考试试题考试科目:数据结构与数据库技术代码:938 (请考生在答题纸上答题,在此试题纸上答题无效)第一部分:数据结构(本部分共90分)一、程序设计题1. 已知一个单链表L(结构定义如下),其头结点指针为head。
试编写一个函数,将单链表L分解为一个链栈(即使用链表存储的堆栈)S和一个链队(即使用链表存储的队列)Q。
要求将L中的偶数元素存放到链栈S中,L中的奇数元素存放到链队Q 中。
(本题30分)typedef struct lnode {int data;struct lnode *next;} node;2.一颗树中根结点的层次定义为0,任何其它结点的层次定义为比它的双亲的层次大1。
已知二叉树的根结点为t,其二叉链表结构定义如下:typedef struct node {char data;struct node *lch,*rch;int level;} tnode ;这里,data为结点的名称,lch为其左孩子,rch为其右孩子,level为结点的层次。
试编写非递归程序算法,计算树中每个结点的层次level的值。
(本题25分)3.试编写一个函数,利用二分(折半)查找算法在一个有序线性表中插入一个元素x,并保持线性表的有序性。
已知有序线性表结构如下:int maxsize=100;struct node {int key;char ch;};typedef struct sqlist[maxsize];这里,key为线性表的关键字,ch为其它数据域。
(本题20分)4.利用一维数组A可以对n个整数进行排序。
有一种排序的算法思想如下:将n个整数分别作为数组A的n个元素的值,每次(即第i次)从元素A[i]~ A[n]中挑出最小的一个元素A[k](i≤k≤n),然后将A[k]与A[i]交换(换位),这样反复n次完成排序。
试编写实现上述算法的函数并分析这个排序算法的时间复杂度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
管理科学与工程专业
管理信息系统与数据结构
数据结构部分(50分)
一、简要回答下列问题(10分)
1、简述堆排序的思想方法,以及为实现堆排序需要解决的如下两个问题的
过程(以大顶堆为例)(7分)
(1)如何在输出堆顶元素之后,调整剩余元素成为一个新的堆?
(2)如何由一个无序序列建成一个堆?
2、什么是ASL?写出ASL的定义(写出式子)(3分)
二、单项选择题(10分)
1、某程序的时间复杂度为(3n+nlog2n+n2+8),其数量级表示为()。
A.0(n)
B.(nlog2n)
C.0(n2)
D. 0 (log2n)
2、设有一个含150个表项的散列表,用线性探查法解决冲突,按关键码查询时找到一个表项的平均探查次数不超过1.5,则散列表项应能够至少容纳()个表项。
(设查找成功的平均查找长度为S n1={1+1/(1-a)}/2其中a为填装因子)
A 。
400 B。
300 C。
450 D 600
3、对于长度为9的有序顺序表,若采用折半查找,在等概率情况下查找成功
的平均长度为()的值除以9.
A.20
B.18
C.25
D.22
4、在无向图中定义顶点V i与V j之间的路径为从V i到达V j的一个()
A.顶点序列
B.边序列
C.权值总和
D.边的条数
5、已知一有向图的邻接表储存结构如图所示,根据有向图的深度优先遍历算法,从v1出发的顶点序列为()。
A.V1,V2,V3,V5,V4
B.V1,V2,V3,V4,V5
C.V1,V3,V4,V5,V2
D.V1,V4,V3,V5,V2
三、填空题(5分)
1、在有序表A[1..30]中,按二分查找方法进行查找,查找长度为5的元素个数是
______.
2、在一个深度为K且具有最小结点数的完全二叉树上,按层次用自然数依次对结点编号,则编号最小的叶子的序号是______;编号是i的结点所在的层次号(根在1层)是________。
3、为了实现图的广度优先搜索,除了一个标志数组来标志已访问的图的结点外,还需______存放被访问的结点以实现遍历。
4、用单链表表示的链式队列,入队时应该修改链表的链_______指针。
四、判断下列叙述的对错(5分)
1、在树中,如果从结点K出发,存在两条分别达到K’,K’’的长度相等的路径,由结点K’和K’’互为兄弟。
2、线性表的链式存储结构式通过指针来间接反映数据元素之间逻辑关系的。
3、在线性表的顺序存储结构中,每插入一个数据元素都必须移动相应的数据元素。
4、若连通网络的各边的权值均不相同,则依据Prim算法所构造的最小生成树是唯一的。
5、在散列法中采取开散列(链地址)法来解决冲突时,其填装因子的取值一定在(0,1)之间。
五、综合题(20分)
1、在起泡排序、堆排序和快速排序中:(6分)
(1).若只从排序结果的稳定性考虑,则应选取哪些排序方法?
(2).若只从存储空间考虑,则应选哪些排序方法?
(3).若只从平均情况下排序最快考虑,则应该选取哪些排序方法?
(4).若只从最坏情况下排序最快考虑,则应该选取哪些排序方法?
2、下图是一个有向图,利用Dijkstra算法求图中从顶点A到其他各顶点间的最短路径,要求在答题纸上画出如下表,将执行算法过程中各步的状态和最短路径填入表中。
(7分)
A到各点最短路径分别为:
3、下面的函数是输出二叉树的各结点。
读程并在每个空格处填写一个语句或一个表达式。
(7分)
#define max 100
typedef struct tnode{
int data;
struct tnode *lchild,*rchild;
} tnode;
typedef struct stack{
tnode *elem[max];
int top;
}stack;
void print tree(tnode *bt)
{stack s;tnode *p;
p=____________________; s.top:=0;
while(p||s.top!=0){
s.elem[s.top++]=p;
_______________________;
}
if(s.top>0){
p=s.elem[--s.top];
printf(“%d”,p->data);
p=p->rchild;
}
}
}。