大学数据结构考试题和答案.docx

上传人:b****1 文档编号:2619592 上传时间:2023-05-04 格式:DOCX 页数:28 大小:174.91KB
下载 相关 举报
大学数据结构考试题和答案.docx_第1页
第1页 / 共28页
大学数据结构考试题和答案.docx_第2页
第2页 / 共28页
大学数据结构考试题和答案.docx_第3页
第3页 / 共28页
大学数据结构考试题和答案.docx_第4页
第4页 / 共28页
大学数据结构考试题和答案.docx_第5页
第5页 / 共28页
大学数据结构考试题和答案.docx_第6页
第6页 / 共28页
大学数据结构考试题和答案.docx_第7页
第7页 / 共28页
大学数据结构考试题和答案.docx_第8页
第8页 / 共28页
大学数据结构考试题和答案.docx_第9页
第9页 / 共28页
大学数据结构考试题和答案.docx_第10页
第10页 / 共28页
大学数据结构考试题和答案.docx_第11页
第11页 / 共28页
大学数据结构考试题和答案.docx_第12页
第12页 / 共28页
大学数据结构考试题和答案.docx_第13页
第13页 / 共28页
大学数据结构考试题和答案.docx_第14页
第14页 / 共28页
大学数据结构考试题和答案.docx_第15页
第15页 / 共28页
大学数据结构考试题和答案.docx_第16页
第16页 / 共28页
大学数据结构考试题和答案.docx_第17页
第17页 / 共28页
大学数据结构考试题和答案.docx_第18页
第18页 / 共28页
大学数据结构考试题和答案.docx_第19页
第19页 / 共28页
大学数据结构考试题和答案.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

大学数据结构考试题和答案.docx

《大学数据结构考试题和答案.docx》由会员分享,可在线阅读,更多相关《大学数据结构考试题和答案.docx(28页珍藏版)》请在冰点文库上搜索。

大学数据结构考试题和答案.docx

大学数据结构考试题和答案

第1章绪论《》

1、填空题

1.常见的数据结构有_线性__结构,__树形___结构,__图形__结构等三种。

2.常见的存储结构有__顺序存储_______结构,__链式存储____结构等两种。

3.数据的基本单位是_数据元素___,它在计算机中是作为一个整体来处理的。

4.数据结构中的结构是指数据间的逻辑关系,常见的结构可分为两大类,__线性结构____和__非线性结构___。

2、应用题

1、给出以下算法的时间复杂度.

voidfun(intn)

{

inti=1,k=100;

while(i

{

k=k+1;

i=i+2;

}

}

时间复杂度为____O(n)_____。

2、给出以下算法的时间复杂度.

voidfun2(intn)

{

inti=1,k=100;

while(i

{

i=i*10;

k=k+1;

}

}

时间复杂度为____O(logn)___________。

第2章线性表

1、填空题

1.线性表按照存储结构不同主要有两种实现方式,一种是__顺序_表,另一种是___链___表。

2.顺序表采用__随机___访问机制对数据元素进行访问。

3.若在单链表结点p的后面插入一个新的结点s,则其操作序列为:

①____s->next=p->next_____________;

②____p->next=s___________________;

4.在单向链表中,若要删除某个结点p,一般要找到__p的前趋__结点,才能实现该操作。

2、选择题

1.将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是A。

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

2.在单链表中,如果在结点p之后插入一个新结点s,其操作为A。

(A)s->next=p->next;p->next=s;

(B)p->next=s;s->next=p->next;

(C)s->next=p;p->next=s->next;

(D)p->next=s;s->next=p;

3.若长度为n的线性表采用顺序存储结构,在其第i个位置删除一个元素的算法的平均时间复杂度为(  C )。

(1≤i≤n)

A.O(0)   B.O

(1)   C.O(n)   D.O(n2)

4.若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素需要移动的元素个数为(  B )。

(1≤i≤n+1)

A.n-i  B.n-i+1   C.i   D.n-i-1

3、判断题

1.线性表中每一个元素都有一个前驱和一个后继。

(×)

4、程序设计题

1、单链表的结点结构定义如下:

structLinkNode

{

LinkNode*next;

intdata;

};

请根据述函数的功能写程序。

voidInsert(LinkNode*h,LinkNode*s)

{//h指向链表的头结点(即使链表中没有元素,头结点也存在。

//链表中元素已经递增有序

//函数功能为将结点s插入到链表h中。

插入后链表仍然保持递增的顺序

LinkNode*p,*q;//q指向p的前驱

q=h;

p=h->next;

while(p)

{

if(p->data>s->data)

{//寻找到插入点位置,插入s

q->next=s;

s->next=p;

return;

}

else

{

q=p;(1分)

p=p->next;(1分)

}

}

//当表中没有比s大的结点时,插入到表尾

s->next=q->next;(2分)

q->next=s;(2分)

}

2、设顺序表L是一个递增有序表,试写一算法,将x插入L中,并使L仍是一个有序表。

顺序表的结构定义如下:

#defineListSize100//假定表空间大小为100

structSqList{

   intelem[ListSize];//数组elem用于存放表中的数据

   intlength;//当前的表长度

};

//以上为顺序表的结构

//函数头定义如下

voidInsertIncreaseList(SqList&L,intx)

{inti;

 if(L.length>=ListSize)cout<<”OVERFLOW”;//判断是否溢出

 for(i=L.length;i>0&&L.elem[i-1]>x;i--)

   L.elem[i]=L.elem[i-1];//比较并移动元素

 L.elem[i]=x;//插入x

 L.length++;//表长增1

}

///////

3、单链表中结点的结构如下所示:

typedefstructnode

{intdata;

structnode*next;

}node;

请设计满足下述功能的函数。

要求:

建立带头结点的单链表H,要求函数从屏幕上读入m个整数,每读入一个,便生成相应的结点,并且把它插入到链表H的尾部。

函数形式为voidCreateLinkList(node*H)。

参考程序:

voidCreateList(node*H)

{//H指向头指针

intm,temp;

cout<<"输入数据的个数:

";

cin>>m;//

inti=1;

node*tail;

H->next=NULL;

tail=H;

while(i<=m)

{

cout<<"pleaseinputyournumber:

"<

cin>>temp;

node*t=newnode;

t->data=temp;

t->next=tail->next;

tail->next=t;

tail=t;

i++;

}

第3章栈和队列

1、填空题

1.栈和队列在本质上都是___线性表__________。

2.栈的操作特点是__后进先出_。

队列的操作特点是_先进先出__。

2、选择题

1.消除递归不一定需要使用栈,此说法___A____。

A.正确   B.错误

2.对于栈,输入序列为(1,2,3,4),不可能得到的输出序列有__D_____。

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

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

3.用单循环链表表示队列,正确的说法是B。

(A)可设一个头指针使入队、出队都方便;

(B)可设一个尾指针使入队、出队都方便;

(C)必须设头尾指针才能使入队、出队都方便;

(D)无论如何,只可能使入队方便。

3、判断题

1.栈的特点是先进先出。

(×)

2.可以在队列的任意位置插入元素。

(×)

3.递归程序化非递归程序必须用到栈。

(×)

4.如果进栈的序列为(1,2,3,4),则(4,2,3,1)不可能是出栈序列。

(√)

5.在用顺序表表示的循环队列中,可用标志位来区分队空或队满的条件。

(√)

第4章串

1、选择题

1.设有两个串p和q,求q在p中首次出现的位置的运算称作(B)

A.连接B.模式匹配C.求子串D.求串长

2、判断题

1.空串和空格串是同一个概念,二者没有区别。

(×)

第5章数组和广义表

1、填空题

1.二维数组在内存中存储可以有两种存储方式,一种是___行__优先存储,一种是列优先存储。

2.设广义表L=((),(),(()))。

则head(L)是  ()  ;

tail(L)是  ((),(()));L的长度是  3 ;L的深度是3。

3.设广义表L=((a),(b),((c))) 则head(L)是__(a)__;

tail(L)是_((b),((c)))___。

2、选择题

1.在C语言中,如果有数组定义intA[8][9];假定每个整型数据占2字节,则数组元素A[4][4]的地址是(A)。

A.A+80B.A+76C.A+82D.以上都不对

2.广义表A=(a,b,(c,d),(e,(f,g))),则下面式子的值为( D  );

   Head(Tail(Head(Tail(Tail(A)))))

A.(g)   B.(d)   C.c   D.d

3、判断题

1.在C语言中,多维数组的存储采取的是行优先的方式。

(√)

2.广义表在本质上也是线性表。

(×)

3.可以用三元组存储法来压缩存储稀疏矩阵。

(√)

4.已知广义表A=((a,b,c),(d,e,f)),从A中取出原子e的运算是head(tail(head(tail(A))))。

(√)

第6章树和二叉树

1、填空题

1.一棵62个叶结点的完全二叉树,最多有___62*2=124______个结点。

2.若规定仅有根的二叉树的高度为1,那么高为h的完全二叉树最多有____2^h-1___________个结点,最少有___2^(h-1)______个结点。

3.设只包含有根结点的二叉树的高度为0,则高度为k的二叉树的最大结点数为____2^(k+1)-1____________,最小结点数为____k+1____________。

4.设仅包含根结点的二叉树的高度为1,则高度为k的二叉树的最大结点数为_______2^k-1_________,最小结点数为____k______。

2、选择题

1.具有N个结点的完全二叉树的深度是__B______。

(A)⌊log2N⌋(B)⌊log2N⌋+1

(C)⌊log2(N)⌋(D)⌊log2N⌋-1

2.设二叉树的树根为第一层,则第i层上至多有__C_____结点。

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

3、判断题

1.二叉树的左右子树次序是严格的,不能够任意改变。

(√)

2.若根为第一层,则深度为k的满二叉树的结点为2^k-1。

(√)

3.二叉树的三叉链表存储结构可以方便的访问到双亲结点。

(√)

4、应用题

1.在一段文字中,共出现a、b、c、d、e、f六种字符,每种字符出现的频率分别为7,9,12,22,23,27。

请回答下列问题:

(1)什么是哈夫曼树?

(3分)

(2)根据题目所给频率值,画出相应的哈夫曼树。

(11分)

(3)给出各个字符对应的哈夫曼编码。

(6分)

(4)该段文字经过哈夫曼编码后,长度是多少。

(4分)

参考答案如下:

(1)答案为:

带权路径长度最小的二叉树称为哈夫曼树。

(3分)

(2)根据题目所给频率值,画出相应的哈夫曼树。

(11分,每个结点1分)

(3)给出各个字符对应的哈夫曼编码。

(6分)

a:

1110b:

1111c:

110d:

00e:

01f:

10

(4)该段文字经过哈夫曼编码后,长度是多少。

(4分)

(7+9)*4+12*3+(22+23+27)*2=244

或者100+45+55+28+16=244

2.设一棵二叉树的先序遍历序列为abcde,中序遍历序列为badce,请画出对应的二叉树,并写出对应后序遍历序列。

(15分)

参考答案如下:

(1)画出二叉树(10分)

错一个结点扣2分。

(2)后序遍历序列为:

bdeca(5分)

3.通信报文中出现的字符A、B、C、D、E,在报文中出现的频率分别为0.23、0.2、0.32、0.12、0.13,分别给出相应字符的哈夫曼编码(要求画出哈夫曼树,并且把权值小的结点放在左边)。

(共14分)

参考答案如下:

为处理方便,关键字都乘以100,为{23,20,32,12,13}

构造哈夫曼树为:

(9分,每个结点1分)

所以编码为:

A:

01B:

00C:

11D:

100E:

101(5分,每个编码1分)

4.某二叉树结点的中序序列为H,B,C,D,E,F,G,后序序列为B,D,C,H,F,G,E,请据此画出该二叉树,再给该树加上中序线索。

(共15分)

对应的二叉树为:

(7分,每个结点1分)对应中序线索树为:

(8分,每条线索1分)

 

55.请证明对于任何一棵二叉树,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1。

(10分)

证明:

令树中结点总数为N,度为1的结点个数为n1。

则树中结点数满足下列公式:

n0+n1+n2=N

从度的角度来考虑,满足下列公式:

2n2+n1+1=N

从而得证:

n0=n2+1

5.请按照孩子-兄弟表示法,将图1所示树转化为二叉树。

(共14分)

解:

(每个结点2分)

 

 

6.

设二叉树如图2所示。

分别写出它的先序遍历、中序遍历、后序遍历序列。

(共15分)

 

8.

(1)写出如图所示二叉树的中序遍历结果。

(8分)

(2)画出二叉树的中序后继线索。

(10分)

(1)中序遍历结果:

ADBCHFEG——共8分,每个字符1分

(2)二叉树的中序后继线索如图

——共10分,每个后继线索2分

 

9.

已知某二叉树的前序遍历序列为:

ABCDEFG

和中序遍历序列为:

CBEDAFG。

请画出该二叉树。

答案如下:

 

10.

已知通信联络中只可能出现A、B、C、D、E、F、G、H共8种字符,其出现次数分别为5,28,7,9,14,23,3,11次。

(1)请画出赫夫曼树(权值小的结点在左边)。

(15分)

(2)计算该树的带权路径长度。

(3分)

答案:

此答案错误!

(1)赫夫曼树构造如下。

树中结点位置正确者,每个1分,共15分。

(2)该树的带权路径长度为

(5+3+7+8)*4+(11+14)*3+(23+29)*2=271

————3分

5、读程序写结果

已知二叉树的结点结构如下:

structNode

{

intdata;

Node*lchild,*rchild;

};

某棵二叉树的形态如右图:

根据要求解答下题:

1、(共5分)

intfun1(Node*root)

{

if(root==0)return0;

intl,r;

l=fun1(root->lchild);

r=fun1(root->rchild);

if(l>=r)returnl+1;

elsereturnr+1;

}

(1)当root是指向结点A的指针时,函数fun1的返回值是多少?

(2分)

函数fun1的返回值是3。

(2)函数fun1的功能是什么?

(3分)

函数fun1的功能是求二叉树的高度。

2、(共6分)

intfun2(Node*root)

{

if(root==0)return0;

intl=fun2(root->lchild);

intr=fun2(root->rchild);

returnl+r+1;

}

(1)当root是指向结点A的指针时,函数fun1的返回值是多少?

(2分)

函数fun1的返回值是5。

(2)函数fun1的功能是什么?

(4分)

函数fun1的功能是求二叉树中所有结点的个数

第7章图

1、填空题

1.有n个顶点的有向连通图最多有n(n-1)条边,最少有n-1条边。

2.具有n个顶点的完全无向图有__2/n(n-1)______条边,完全有向图有______n(n-1)__条边。

2、选择题

1._____b_____方法可以判断出一个有向图中是否有环(回路)。

(A)深度优先遍历(B)拓扑排序  

(C)求最短路径 (D)求关键路径

2.关键路径是指__b________。

(A)从开始事件到终止事件路径长度最短的路径

(B)从开始事件到终止事件路径长度最长的路径

(C)从开始事件到终止事件活动最少的路径   

(D)从开始事件到终止事件活动最多的路径 

7.方法b可以判断出一个有向图中是否有环(回路)。

(A)深度优先遍历(B)拓扑排序  

(C)求最短路径 (D)求关键路径

3、判断题

1.具有n个顶点的有向图最多有n*(n-1)条边。

(t)

2.在AOV-网中,不应该出现有向环,因为存在环就意味着活动可以以自己为先决条件。

(t)

4、应用题

1、已知某图的存储结构如下,试写出该图从顶点A开始的深度优先遍历序列。

(11分)

A

B

C

D

E

F

G

H

I

J

K

A

0

1

1

1

1

1

0

0

0

0

0

B

0

0

0

0

0

0

1

0

0

0

0

C

0

0

0

0

0

0

0

1

0

0

0

D

0

0

0

0

0

0

0

0

1

0

0

E

0

0

0

0

0

0

0

0

0

1

0

F

0

0

0

0

0

0

0

0

0

0

1

G

0

1

0

0

0

0

0

0

0

0

0

H

0

0

1

0

0

0

0

0

0

0

0

I

0

0

0

1

0

0

0

0

0

0

0

J

0

0

0

0

1

0

0

0

0

0

0

K

0

0

0

0

0

1

0

0

0

0

0

答案为:

ABGCHDIEJFK(对一个1分)

2.请给出图1的所有最小生成树。

(10分)

 

共两棵。

第一棵为:

(5分)错一条边扣1分。

第二棵为:

(5分)错一条边扣1分。

3.请给出图2的所有拓扑排序序列。

(16)

答案如下:

仅有两个

第一个:

abcdefgh(错一个字符扣1分)

第二个:

abcdegfh(错一个字符扣1分)

 

4、对于有向无环图(如图2),写出它的所有不同的拓扑有序序列。

(共16分)

序列为:

1、3、2、4、5、6、7、8

6.已知某图采取如图2所示的邻接矩阵表示法,请回答下列问题。

(共12分)

0

高中英语不规则动词表

steal偷stolestolen

1

forgive原谅forgaveforgiven2

arise出现arosearisen3

speak说spokespoken4

5

go去wentgone6

1

A

buy买boughtbought

wake醒着woke/wakedwoke/waked/woken1

0

swim游泳swamswum1

wake醒着woke/wakedwoke/waked/woken1

0

0

0

2

B

2

1

0

0

1

1

0

3

C

3

1

0

0

0

1

1

4

D

4

0

1

0

0

0

0

5

E

5

0

1

1

0

0

0

6

F

6

0

0

1

0

0

0

图2

(1)请画出该图。

(6分)

(2)对其从顶点A开始进行深度优先遍历,写出遍历序列。

(6分)

(1)请画出该图。

(6分)错一个结点扣1分。

(2)对其从顶点A开始进行深度优先遍历,写出遍历序列。

(6分,错一个字符扣1分)

序列为:

ABDECF

7、(本题总计7分)

构造该图的最小生成树。

 

图的最小生成树如下——每条边1分,共7分

 

第9章查找

1、选择题

1.若在线性表中采用二分查找法查找元素,该线性表应该( a  )。

A.元素按值有序   B.采用顺序存储结构

C.元素按值有序,且采用顺序存储结构

D.元素按值有序,且采用链式存储结构

2.对二叉排序树进行_____b____遍历,可以得到该二叉树所有结点构成的有序序列。

(A)前序   (B)中序   (C)后序   (D)按层次

3.利用逐点插入法建立序列(51,71,43,81,74,20,34,45,64,30)对应的二叉排序树以后,查找元素34要进行( a  )元素间的比较。

A.4次   B.5次   C.7次   D.10

4.对二叉排序树进行_______b_____遍历,可以得到该二叉树所有结点构成的有序序列。

(A)前序   (B)中序   (C)后序   (D)按层次

5.散列函数有一个共同性质,即函数值应按(   c)取其值域的每一个值。

A.最大概率  B.最小概率  C.同等概率  D.平均概率

6.一个哈希函数被认为是“好的”,如果它满足条件____d_____。

(A)哈希地址分布均匀

(B)保证不产生冲突

(C)所有哈希地址在表长范围内

(D)满足(B)和(C)

7.哈希表的平均查找长度是_______d___的函数。

(A)哈希表的长度(B)表中元素的多少

(C)哈希函数(D)哈希表的装满程度

8.平均查找长度最短的查找方法是__________c__。

(A)折半查找(B)顺序查找(C)哈希查找(4)其他

2、判断题

1.在有序表的查询过程中,设立“哨兵”的作用是为了提高效率。

(t)

2.对于折半查找,其前提条件是待查找序列只要是有序的即可。

(f)

3、应用题

1.

输入一个正整数序列(53,17,12,66,58,70,87,25,56,60),试完成下列各题。

(1)按输入次序构造一棵二叉排序树(只要求画出最终二叉排序树)。

(2)依此二叉排序树,如何得到一个从小到大的有序序列?

2、若一棵排序二叉树的关键字输入序列为{80,6,10,7,8,25,100,90},请画出该二叉树。

解:

二叉排序树为:

(16分,每个结点2分)

3.

已知一组关键字为{1,14,27,29,55,68,10,11,23},则按哈希函数H(key)=keyMOD13和链地址法处理冲突来构造哈希表。

(1)画出所构造的哈希表。

(2)在记录的查找概率相等的前提下,计算该表查找成功时的平均查找长度。

(1)画出所构造的哈希表。

——9个结点,每个1分

0

1

1

14

27

2

3

29

55

68

4

5

6

7

8

9

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2