北大成教数据结构试题(六套题).doc

上传人:b****3 文档编号:2587150 上传时间:2022-11-02 格式:DOC 页数:24 大小:526.50KB
下载 相关 举报
北大成教数据结构试题(六套题).doc_第1页
第1页 / 共24页
北大成教数据结构试题(六套题).doc_第2页
第2页 / 共24页
北大成教数据结构试题(六套题).doc_第3页
第3页 / 共24页
北大成教数据结构试题(六套题).doc_第4页
第4页 / 共24页
北大成教数据结构试题(六套题).doc_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

北大成教数据结构试题(六套题).doc

《北大成教数据结构试题(六套题).doc》由会员分享,可在线阅读,更多相关《北大成教数据结构试题(六套题).doc(24页珍藏版)》请在冰豆网上搜索。

北大成教数据结构试题(六套题).doc

数据结构试卷

(一)

一、选择题(20分)

1.组成数据的基本单位是(A)。

(A)数据项 (B)数据类型 (C)数据元素 (D)数据变量

2.设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},则数据结构A是(C)。

(是个圆图)

(A)线性结构 (B)树型结构 (C)图型结构 (D)集合

3.数组的逻辑结构不同于下列(D)的逻辑结构。

(A)线性表 (B)栈 (C)队列 (D)树

4.二叉树中第i(i≥1)层上的结点数最多有(C)个。

(A)2i (B)2i (C)2i-1 (D)2i-1

5.设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为(A)。

(A)p->next=p->next->next (B)p=p->next

(C)p=p->next->next (D)p->next=p

6.设栈S和队列Q的初始状态为空,元素E1、E2、E3、E4、E5和E6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出列的顺序为E2、E4、E3、E6、E5和E1,则栈S的容量至少应该是(c)。

(A)6 (B)4 (C)3 (D)2

7.将10阶对称矩阵压缩存储到一维数组A中,则数组A的长度最少为(C)。

(A)100 (B)40 (C)55 (D)80

8.设结点A有3个兄弟结点且结点B为结点A的双亲结点,则结点B的度数数为(B)。

(A)3 (B)4 (C)5 (D)1

9.根据二叉树的定义可知二叉树共有(B)种不同的形态。

(满二叉、完全二叉树、空树、最优树、最短树)

(A)4 (B)5 (C)6 (D)7

10.设有以下四种排序方法,则(B)的空间复杂度最大。

(A)冒泡排序 (B)快速排序 (C)堆排序 (D)希尔排序

二、填空题(30分)

1.设顺序循环队列Q[0:

m-1]的队头指针和队尾指针分别为F和R,其中队头指针F指向当前队头元素的前一个位置,队尾指针R指向当前队尾元素所在的位置,则出队列的语句为__F=(f+1)%m________;。

2.设线性表中有n个数据元素,则在顺序存储结构上实现顺序查找的平均时间复杂度为__O(n)___,在链式存储结构上实现顺序查找的平均时间复杂度为__O(n)_______。

3.设一棵二叉树中有n个结点,则当用二叉链表作为其存储结构时,该二叉链表中共有____2n____个指针域,____n+1______个空指针域。

4.设指针变量p指向单链表中结点A,指针变量s指向被插入的结点B,则在结点A的后面插入结点B的操作序列为____s->next=p->next;______p->next=s;____________________________。

5.设无向图G中有n个顶点和e条边,则其对应的邻接表中有__n____个表头结点和____2e____个表结点。

6.设无向图G中有n个顶点e条边,所有顶点的度数之和为m,则e和m有__m=2e____关系。

7.设一棵二叉树的前序遍历序列和中序遍历序列均为ABC,则该二叉树的后序遍历序列为__CBA___。

8.设一棵完全二叉树中有21个结点,如果按照从上到下、从左到右的顺序从1开始顺序编号,则编号为8的双亲结点的编号是___4_____,编号为8的左孩子结点的编号是____16_______。

9.下列程序段的功能实现子串t在主串s中位置的算法,要求在下划线处填上正确语句。

intindex(chars[],chart[])

{

i=j=0;

while(i

if(s[i]==t[j]){

i=i+l;j=j+l;

}else{

i=_i_;j=__j__;

}

}

if(j==strlen(t))return(i-strlen(t));elsereturn(-1);

}

10.设一个连通图G中有n个顶点e条边,则其最小生成树上有__n-1__条边。

三、应用题(30分)

1.设完全二叉树的顺序存储结构中存储数据ABCDE,要求给出该二叉树的链式存储结构并给出该二叉树的前序、中序和后序遍历序列。

A

B C

D E

前ABDEC

中DBEAC

后DEBCA

2.设给定一个权值集合W=(3,5,7,9,11),要求根据给定的权值集合构造一棵哈夫曼树并计算哈夫曼树的带权路径长度WPL。

3.设一组初始记录关键字序列为(19,21,16,5,18,23),要求给出以19为基准的一趟快速排序结果以及第2趟直接选择排序后的结果。

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

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

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

4.设一组初始记录关键字集合为(25,10,8,27,32,68),散列表的长度为8,散列函数H(k)=kmod7,要求分别用线性探测和链地址法作为解决冲突的方法设计哈希表。

5.设无向图G(所右图所示),要求给出该图的深度优先和广度优先遍历的序列并给出该图的最小生成树。

四、算法设计题(20分)

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

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

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

数据结构试卷

(一)参考答案

一、选择题

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)

4.线性探测:

链地址法:

5.深度:

125364,广度:

123456,最小生成树T的边集为E={(1,4),(1,3),(3,5),(5,6),(5,6)}

四、算法设计题

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

typedefstruct{ints[100];inttop;}sqstack;

intlklistsymmetry(lklist*head)

{

sqstackstack;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;elsereturn(0);

return

(1);

}

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

typedefchardatatype;

typedefstructnode{datatypedata;structnode*lchild,*rchild;}bitree;

voidcreatebitree(bitree*&bt)

{

charch;scanf("%c",&ch);

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

bt=(bitree*)malloc(sizeof(bitree));bt->data=ch;

createbitree(bt->lchild);createbitree(bt->rchild);

}

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

intminnum=-32768,flag=1;

typedefstructnode{intkey;structnode*lchild,*rchild;}bitree;

voidinorder(bitree*bt)

{

if(bt!

=0)

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

}

数据结构试卷

(二)

一、选择题(24分)

1.下面关于线性表的叙述错误的是(D)。

(A)线性表采用顺序存储必须占用一片连续的存储空间

(B)线性表采用链式存储不必占用一片连续的存储空间

(C)线性表采用链式存储便于插入和删除操作的实现

(D)线性表采用顺序存储便于插入和删除操作的实现

2.设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有(B)个空指针域。

(A)2m-1 (B)2m (C)2m+1 (D)4m

3.设顺序循环队列Q[0:

M-1]的头指针和尾指针分别为F和R,头指针F总是指向队头元素的前一位置,尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为(C)。

(A)R-F (B)F-R (C)(R-F+M)%M (D)(F-R+M)%M

4.设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为(A)。

(A)BADC (B)BCDA (C)CDAB (D)CBDA

5.设某完全无向图中有n个顶点,则该完全无向图中有(A)条边。

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

6.设某棵二叉树中有2000个结点,则该二叉树的最小高度为(C)。

(A)9 (B)10 (C)11 (D)12

7.设某有向图中有n个顶点,则该有向图对应的邻接表中有(B)个表头结点。

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

8.设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字5为基准进行一趟快速排序的结果为(C)。

(A)2,3,5,8,6 (B)3,2,5,8,6

(C)3,2,5,6,8 (D)2,3,6,5,8

二、填空题(24分)

1.为了能有效地应用HASH查找技术,必须解决的两个问题是____________________和__________________________。

2.下面程序段的功能实现数据x进栈,要求在下划线处填上正确的语句。

typedefstruct{ints[100];inttop;}sqstack;

voidpush(sqstack&stack,intx)

{

if(stack.top==m-1)printf(“overflow”);

else{____________________;_________________;}

}

3.中序遍历二叉排序树所得到的序列是___________序列(填有序或无序)。

4.快速排序的最坏时间复杂度为___________,平均时间复杂度为__________。

5.设某棵二叉树中度数为0的结点数为N0,度数为1的结点数为N1,则该二叉树中度数为2的结点数为__

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 卡通动漫

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1