数据结构试卷带答案(4)

1970-01-01 08:00

3. 子串“ABC”在主串“AABCABCD”中的位置为2。( )

4. 若一个叶子结点是某二叉树的中序遍历序列的最后一个结点,则它必是该二叉树的先序遍历序列中

的最后一个结点。( )

2

5. 希尔排序算法的时间复杂度为O(n)。( )

6. 用邻接矩阵作为图的存储结构时,则其所占用的存储空间与图中顶点数无关而与图中边数有关。

( )

7. 中序遍历一棵二叉排序树可以得到一个有序的序列。( )

8. 入栈操作和入队列操作在链式存储结构上实现时不需要考虑栈溢出的情况。( ) 9. 顺序表查找指的是在顺序存储结构上进行查找。( ) 10.堆是完全二叉树,完全二叉树不一定是堆。( )

五、算法设计题(20分)

1. 设计计算二叉树中所有结点值之和的算法。 2. 设计将所有奇数移到所有偶数之前的算法。 3. 设计判断单链表中元素是否是递增的算法。

数据结构试卷(十)

一、选择题(24分)

1.下列程序段的时间复杂度为( )。

i=0,s=0; while (s

1/21/32

(A) O(n) (B) O(n) (C) O(n) (D) O(n)

2.设某链表中最常用的操作是在链表的尾部插入或删除元素,则选用下列( )存储方式最节省运算时间。

(A) 单向链表 (B) 单向循环链表 (C) 双向链表 (D) 双向循环链表

3.设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B插入结点X的操作序列为( )。 (A) s->next=p->next;p->next=-s; (B) q->next=s; s->next=p; (C) p->next=s->next;s->next=p; (D) p->next=s;s->next=q;

4.设输入序列为1、2、3、4、5、6,则通过栈的作用后可以得到的输出序列为( )。 (A) 5,3,4,6,1,2 (B) 3,2,5,6,4,1 (C) 3,1,2,5,4,6 (D) 1,5,4,6,2,3 5.设有一个10阶的下三角矩阵A(包括对角线),按照从上到下、从左到右的顺序存储到连续的55个存储单元中,每个数组元素占1个字节的存储空间,则A[5][4]地址与A[0][0]的地址之差为( )。 (A) 10 (B) 19 (C) 28 (D) 55

6.设一棵m叉树中有N1个度数为1的结点,N2个度数为2的结点,??,Nm个度数为m的结点,则该树中共有( )个叶子结点。 (A)

?(i?1)Ni?1mi (B)

?Ni?1mi (C)

?Ni?2mi (D) 1??(i?1)Ni?2mi

7. 二叉排序树中左子树上所有结点的值均( )根结点的值。 (A) < (B) > (C) = (D) !=

8. 设一组权值集合W=(15,3,14,2,6,9,16,17),要求根据这些权值集合构造一棵哈夫曼树,则这棵哈夫曼树的带权路径长度为( )。 (A) 129 (B) 219 (C) 189 (D) 229

16

9. 设有n个关键字具有相同的Hash函数值,则用线性探测法把这n个关键字映射到HASH表中需要做( )次线性探测。

2

(A) n (B) n(n+1) (C) n(n+1)/2 (D) n(n-1)/2

10.设某棵二叉树中只有度数为0和度数为2的结点且度数为0的结点数为n,则这棵二叉中共有( )个结点。 (A) 2n (B) n+l (C) 2n-1 (D) 2n+l

11.设一组初始记录关键字的长度为8,则最多经过( )趟插入排序可以得到有序序列。 (A) 6 (B) 7 (C) 8 (D) 9

12.设一组初始记录关键字序列为(Q,H,C,Y,P,A,M,S,R,D,F,X),则按字母升序的第一趟冒泡排序结束后的结果是( )。

(A) F,H,C,D,P,A,M,Q,R,S,Y,X (B) P,A,C,S,Q,D,F,X,R,H,M,Y (C) A,D,C,R,F,Q,M,S,Y,P,H,X (D) H,C,Q,P,A,M,S,R,D,F,X,Y 二、填空题(48分,其中最后两小题各6分)

1. 设需要对5个不同的记录关键字进行排序,则至少需要比较_____________次,至多需要比较

_____________次。

2. 快速排序算法的平均时间复杂度为____________,直接插入排序算法的平均时间复杂度为

___________。

3. 设二叉排序树的高度为h,则在该树中查找关键字key最多需要比较_________次。

4. 设在长度为20的有序表中进行二分查找,则比较一次查找成功的结点数有_________个,比较两次

查找成功有结点数有_________个。

5. 设一棵m叉树脂的结点数为n,用多重链表表示其存储结构,则该树中有_________个空指针域。 6. 设指针变量p指向单链表中结点A,则删除结点A的语句序列为:

q=p->next;p->data=q->data;p->next=___________;feee(q);

7. 数据结构从逻辑上划分为三种基本类型:___________、__________和___________。

8. 设无向图G中有n个顶点e条边,则用邻接矩阵作为图的存储结构进行深度优先或广度优先遍历时

的时间复杂度为_________;用邻接表作为图的存储结构进行深度优先或广度优先遍历的时间复杂度为_________。

9. 设散列表的长度为8,散列函数H(k)=k % 7,用线性探测法解决冲突,则根据一组初始关键字序列

(8,15,16,22,30,32)构造出的散列表的平均查找长度是________。

10. 设一组初始关键字序列为(38,65,97,76,13,27,10),则第3趟冒泡排序结束后的结果为

_____________________。

11. 设一组初始关键字序列为(38,65,97,76,13,27,10),则第3趟简单选择排序后的结果为

______________________。

12. 设有向图G中的有向边的集合E={<1,2>,<2,3>,<1,4>,<4,5>,<5,3>,<4,6>,<6,5>},

则该图的一个拓扑序列为_________________________。

13. 下面程序段的功能是建立二叉树的算法,请在下划线处填上正确的内容。

typedef struct node{int data;struct node *lchild;________________;}bitree; void createbitree(bitree *&bt) {

scanf(“%c”,&ch);

if(ch=='#') ___________;else

{ bt=(bitree*)malloc(sizeof(bitree)); bt->data=ch; ________;createbitree(bt->rchild);} }

14. 下面程序段的功能是利用从尾部插入的方法建立单链表的算法,请在下划线处填上正确的内容。

typedef struct node {int data; struct node *next;} lklist;

17

void lklistcreate(_____________ *&head ) {

for (i=1;i<=n;i++) {

p=(lklist *)malloc(sizeof(lklist));scanf(“%d”,&(p->data));p->next=0; if(i==1)head=q=p;else {q->next=p;____________;} } }

三、算法设计题(22分)

1. 设计在链式存储结构上合并排序的算法。 2. 设计在二叉排序树上查找结点X的算法。

3. 设关键字序列(k1,k2,?,kn-1)是堆,设计算法将关键字序列(k1,k2,?,kn-1,x)调整为堆。

数据结构试卷(一)参考答案

一、选择题

1.C 2.C 3.D 4.C 5.A 6.C 7.C 8.B 9.B 10.B

二、填空题 1. (F+1) % m 2. O(n),O(n) 3. 2n,n+1

4. s->next=p->next; s->next=s 5. n, 2e 6. m=2e 7. CBA 8. 4,16 9. i-j+1,0 10. n-1

三、应用题

1. 链式存储结构略,前序ABDEC,中序DBEAC,后序DEBCA。 2. 哈夫曼树略,WPL=78

3. (18,5,16,19,21,23),(5,16,21,19,18,23)

h0h1??8h2012345674. 线性探测: 链地址法:h3??10

?8?1025322768h4??25??32h5??68h6??275. 深度:125364,广度:123456,最小生成树T的边集为E={(1,4),(1,3),(3,5),(5,6),(5,6)}

四、算法设计题

1. 设计判断单链表中结点是否关于中心对称算法。

18

typedef struct {int s[100]; int top;} sqstack; int lklistsymmetry(lklist *head) {

sqstack stack; stack.top= -1; lklist *p;

for(p=head;p!=0;p=p->next) {stack.top++; stack.s[stack.top]=p->data;}

for(p=head;p!=0;p=p->next) if (p->data==stack.s[stack.top]) stack.top=stack.top-1; else return(0); return(1); }

2. 设计在链式存储结构上建立一棵二叉树的算法。

typedef char datatype;

typedef struct node {datatype data; struct node *lchild,*rchild;} bitree; void createbitree(bitree *&bt) {

char ch; scanf(\ if(ch=='#') {bt=0; return;}

bt=(bitree*)malloc(sizeof(bitree)); bt->data=ch; createbitree(bt->lchild); createbitree(bt->rchild); }

3. 设计判断一棵二叉树是否是二叉排序树的算法。

int minnum=-32768,flag=1;

typedef struct node{int key; struct node *lchild,*rchild;}bitree; void inorder(bitree *bt) {

if (bt!=0)

{inorder(bt->lchild); if(minnum>bt->key)flag=0; minnum=bt->key; inorder(bt->rchild);} }

数据结构试卷(二)参考答案

一、选择题

1.D 2.B 3.C 4.A 5.A 6.C 7.B 8.C 二、填空题

1. 构造一个好的HASH函数,确定解决冲突的方法 2. stack.top++,stack.s[stack.top]=x 3. 有序

2

4. O(n),O(nlog2n) 5. N0-1,2N0+N1 6. d/2

7. (31,38,54,56,75,80,55,63) 8. (1,3,4,2),(1,3,2,4) 三、应用题

1. (22,40,45,48,80,78),(40,45,48,80,22,78) 2. q->llink=p; q->rlink=p->rlink; p->rlink->llink=q; p->rlink=q; 3. 2,ASL=91*1+2*2+3*4+4*2)=25/9 4. 树的链式存储结构略,二叉树略

5. E={(1,3),(1,2),(3,5),(5,6),(6,4)} 6. 略

四、算法设计题

19

1. 设有一组初始记录关键字序列(K1,K2,?,Kn),要求设计一个算法能够在O(n)的时间复杂度内将

线性表划分成两部分,其中左半部分的每个关键字均小于Ki,右半部分的每个关键字均大于等于Ki。 void quickpass(int r[], int s, int t) {

int i=s, j=t, x=r[s]; while(i

while (ix) j=j-1; if (i

r[i]=x; }

2. 设有两个集合A和集合B,要求设计生成集合C=A∩B的算法,其中集合A、B和C用链式存储结构

表示。

typedef struct node {int data; struct node *next;}lklist; void intersection(lklist *ha,lklist *hb,lklist *&hc) {

lklist *p,*q,*t;

for(p=ha,hc=0;p!=0;p=p->next)

{ for(q=hb;q!=0;q=q->next) if (q->data==p->data) break;

if(q!=0){ t=(lklist *)malloc(sizeof(lklist)); t->data=p->data;t->next=hc; hc=t;} } }

数据结构试卷(三)参考答案

一、选择题

1.B 2.B 3.A 4.A 5.A 6.B 7.D 8.C 9.B 10.D

第3小题分析:首先用指针变量q指向结点A的后继结点B,然后将结点B的值复制到结点A中,最后删除结点B。

第9小题分析:9快速排序、归并排序和插入排序必须等到整个排序结束后才能够求出最小的10个数,而堆排序只需要在初始堆的基础上再进行10次筛选即可,每次筛选的时间复杂度为O(log2n)。 二、填空题

1. 顺序存储结构、链式存储结构 2. 9,501 3. 5

4. 出度,入度 5. 0 6. e=d 7. 中序 8. 7 9. O(1)

10. i/2,2i+1

11. (5,16,71,23,72,94,73) 12. (1,4,3,2)

13. j+1,hashtable[j].key==k 14. return(t),t=t->rchild

20


数据结构试卷带答案(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中层干部和管理者能力素质测试题汇编大全

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: