77范文网 - 专业文章范例文档资料分享平台

数据结构试题(7)

来源:网络收集 时间:2019-01-26 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

数据结构试卷(九)

一、选择题(30分)

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

for(i=0; i

for(i=0; i

2.设顺序线性表中有n个数据元素,则删除表中第i个元素需要移动( )个元素。 (A) n-i (B) n+l -i (C) n-1-i (D) i

3.设F是由T1、T2和T3三棵树组成的森林,与F对应的二叉树为B,T1、T2和T3的结点数分别为N1、N2和N3,则二叉树B的根结点的左子树的结点数为( )。 (A) N1-1 (B) N2-1 (C) N2+N3 (D) N1+N3 4.利用直接插入排序法的思想建立一个有序线性表的时间复杂度为( )。

2

(A) O(n) (B) O(nlog2n) (C) O(n) (D) O(1og2n)

5.设指针变量p指向双向链表中结点A,指针变量s指向被插入的结点X,则在结点A的后面插入结点X的操作序列为( )。

(A) p->right=s; s->left=p; p->right->left=s; s->right=p->right; (B) s->left=p;s->right=p->right;p->right=s; p->right->left=s; (C) p->right=s; p->right->left=s; s->left=p; s->right=p->right; (D) s->left=p;s->right=p->right;p->right->left=s; p->right=s;

2

6.下列各种排序算法中平均时间复杂度为O(n)是( )。 (A) 快速排序 (B) 堆排序 (C) 归并排序 (D) 冒泡排序

7.设输入序列1、2、3、?、n经过栈作用后,输出序列中的第一个元素是n,则输出序列中的第i个输出元素是( )。 (A) n-i (B) n-1-i (C) n+l -i (D) 不能确定

8.设散列表中有m个存储单元,散列函数H(key)= key % p,则p最好选择( )。 (A) 小于等于m的最大奇数 (B) 小于等于m的最大素数 (C) 小于等于m的最大偶数 (D) 小于等于m的最大合数

9.设在一棵度数为3的树中,度数为3的结点数有2个,度数为2的结点数有1个,度数为1的结点数有2个,那么度数为0的结点数有( )个。 (A) 4 (B) 5 (C) 6 (D) 7 10.设完全无向图中有n个顶点,则该完全无向图中有( )条边。 (A) n(n-1)/2 (B) n(n-1) (C) n(n+1)/2 (D) (n-1)/2 11.设顺序表的长度为n,则顺序查找的平均比较次数为( )。 (A) n (B) n/2 (C) (n+1)/2 (D) (n-1)/2

12.设有序表中的元素为(13,18,24,35,47,50,62),则在其中利用二分法查找值为24的元素需要经过( )次比较。 (A) 1 (B) 2 (C) 3 (D) 4 13.设顺序线性表的长度为30,分成5块,每块6个元素,如果采用分块查找,则其平均查找长度为( )。 (A) 6 (B) 11 (C) 5 (D) 6.5

14.设有向无环图G中的有向边集合E={<1,2>,<2,3>,<3,4>,<1,4>},则下列属于该有向图G的一种拓扑排序序列的是( )。

(A) 1,2,3,4 (B) 2,3,4,1 (C) 1,4,2,3 (D) 1,2,4,3

15.设有一组初始记录关键字序列为(34,76,45,18,26,54,92),则由这组记录关键字生成的二叉排序树的深度为( )。 (A) 4 (B) 5 (C) 6 (D) 7

31

二、填空题(30分)

1. 设指针p指向单链表中结点A,指针s指向被插入的结点X,则在结点A的前面插入结点X时的操

作序列为:

1) s->next=___________;2) p->next=s;3) t=p->data; 4) p->data=___________;5) s->data=t;

2. 设某棵完全二叉树中有100个结点,则该二叉树中有______________个叶子结点。

3. 设某顺序循环队列中有m个元素,且规定队头指针F指向队头元素的前一个位置,队尾指针R指

向队尾元素的当前位置,则该循环队列中最多存储_______队列元素。

4. 对一组初始关键字序列(40,50,95,20,15,70,60,45,10)进行冒泡排序,则第一趟需要

进行相邻记录的比较的次数为__________,在整个排序过程中最多需要进行__________趟排序才可以完成。

5. 在堆排序和快速排序中,如果从平均情况下排序的速度最快的角度来考虑应最好选择_________排

序,如果从节省存储空间的角度来考虑则最好选择________排序。

6. 设一组初始记录关键字序列为(20,12,42,31,18,14,28),则根据这些记录关键字构造的二

叉排序树的平均查找长度是_______________________________。

7. 设一棵二叉树的中序遍历序列为BDCA,后序遍历序列为DBAC,则这棵二叉树的前序序列为

____________________。

8. 设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为7、19、2、6、32、3、21、

10,根据这些频率作为权值构造哈夫曼树,则这棵哈夫曼树的高度为________________。 9. 设一组记录关键字序列为(80,70,33,65,24,56,48),则用筛选法建

成的初始堆为_______________________。 10. 设无向图G(如右图所示),则其最小生成树上所有边的权值之和为

_________________。

三、判断题(20分)

1. 有向图的邻接表和逆邻接表中表结点的个数不一定相等。( ) 2. 对链表进行插入和删除操作时不必移动链表中结点。( ) 3. 子串“ABC”在主串“AABCABCD”中的位置为2。( )

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

的最后一个结点。( )

2

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

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

( )

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

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

五、算法设计题(20分)

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

32

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

一、选择题 1.A 2.A 3.A 4.C 5.D 6.D 7.C 8.B 9.C 10.A 11.C 12.C 13.D 14.A 15.A

二、填空题

1. p->next,s->data 2. 50 3. m-1 4. 6,8 5. 快速,堆 6. 19/7 7. CBDA 8. 6

9. (24,65,33,80,70,56,48) 10. 8

三、判断题

1.错 2.对 3.对 4.对 5.错 6.错 7.对 8.对 9.错 10.对 四、算法设计题

1. 设计计算二叉树中所有结点值之和的算法。

void sum(bitree *bt,int &s) {

if(bt!=0) {s=s+bt->data; sum(bt->lchild,s); sum(bt->rchild,s);} }

2. 设计将所有奇数移到所有偶数之前的算法。

void quickpass(int r[], int s, int t) {

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

while (i

r[i]=x; }

3. 设计判断单链表中元素是否是递增的算法。

int isriselk(lklist *head) {

if(head==0||head->next==0) return(1);else

for(q=head,p=head->next; p!=0; q=p,p=p->next)if(q->data>p->data) return(0); return(1); }

33

数据结构试卷(十)

一、选择题(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

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

34

二、填空题(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; 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)调整为堆。

35

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

一、选择题 1.A 2.D 3.B 4.B 5.B 6.D 7.A 8.D 9.D 10.C 11.B 12.D

二、填空题 1. 4,10

2. O(nlog2n),O(n2) 3. n 4. 1,2 5. n(m-1)+1 6. q->next

7. 线性结构,树型结构,图型结构 8. O(n2), O(n+e) 9. 8/3

10. (38,13,27,10,65,76,97) 11. (10,13,27,76,65,97,38) 12. 124653

13. struct node *rchild,bt=0,createbitree(bt->lchild) 14. lklist,q=p

三、算法设计题

1. 设计在链式存储结构上合并排序的算法。

void mergelklist(lklist *ha,lklist *hb,lklist *&hc) {

lklist *s=hc=0;

while(ha!=0 && hb!=0)

if(ha->datadata){if(s==0) hc=s=ha; else {s->next=ha; s=ha;};ha=ha->next;} else {if(s==0) hc=s=hb; else {s->next=hb; s=hb;};hb=hb->next;} if(ha==0) s->next=hb; else s->next=ha; }

2. 设计在二叉排序树上查找结点X的算法。

bitree *bstsearch1(bitree *t, int key) {

bitree *p=t;

while(p!=0) if (p->key==key) return(p);else if (p->key>key)p=p->lchild; else p=p->rchild; return(0); }

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

void adjustheap(int r[ ],int n) {

int j=n,i=j/2,temp=r[j-1];

while (i>=1) if (temp>=r[i-1])break; else{r[j-1]=r[i-1]; j=i; i=i/2;} r[j-1]=temp; }

36

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数据结构试题(7)在线全文阅读。

数据结构试题(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/445300.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: