大学数据结构期末考试试题有答案Word文件下载.docx

上传人:b****5 文档编号:21180167 上传时间:2023-01-28 格式:DOCX 页数:33 大小:169.03KB
下载 相关 举报
大学数据结构期末考试试题有答案Word文件下载.docx_第1页
第1页 / 共33页
大学数据结构期末考试试题有答案Word文件下载.docx_第2页
第2页 / 共33页
大学数据结构期末考试试题有答案Word文件下载.docx_第3页
第3页 / 共33页
大学数据结构期末考试试题有答案Word文件下载.docx_第4页
第4页 / 共33页
大学数据结构期末考试试题有答案Word文件下载.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

大学数据结构期末考试试题有答案Word文件下载.docx

《大学数据结构期末考试试题有答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《大学数据结构期末考试试题有答案Word文件下载.docx(33页珍藏版)》请在冰豆网上搜索。

大学数据结构期末考试试题有答案Word文件下载.docx

11•假定对长度n=144的线性表进行索引顺序查找,并假定每个子表的长度均为,则进行索引顺序查找的平均查找长

度为一一,时间复杂度为——

12•一棵B—树中的所有叶子结点均处在一一上。

13•每次从无序表中顺序取岀一个元素,把这插入到有序表中的适当位置,此种排序方法叫做——排序;

每次从无序表中挑

选岀一个最小或最大元素,把它交换到有序表的一端,此种排序方法叫做一一排序。

14•快速排序在乎均情况下的时间复杂度为一一,最坏情况下的时间复杂度为一一。

三、运算题(每小题6分,共24分)

1•假定一棵二叉树广义表表示为a(b(c,d),c(((,8))),分别写出对它进行先序、中序、后序和后序遍历的结果。

先序:

中序;

后序:

2•已知一个带权图的顶点集V和边集G分别为:

V={0,1,2,3,4,5};

E={(0,1)8,(0,2)5,(0,3)2,(1,5)6,(2,3)25,(2,4)13,(3,5)9,(4,5)10},

则求岀该图的最小生成树的权。

最小生成树的权;

3•假定一组记录的排序码为(46,79,56,38,40,84,50,42),则利用堆排序方法建立的初始堆为一一。

4•有7个带权结点,其权值分别为3,7,8,2,6,10,14,试以它们为叶子结点生成一棵哈夫曼树,求出该树的带权路径长度、高度、双分支结点数。

带权路径长度:

一一高度:

一一双分支结点数:

一一。

四、阅读算法,回答问题(每小题8分,共16分)

1•VOIdAC(List&

L)

{

InitList(L);

InsertRear(L;

25);

lnsertFront(L,50)

lntaL4]={5,8,12,15,36};

for(inti=0;

i<

5;

i++)

if(a[i]%2==0)InsertFront(L,a[i]);

elselnsertRear(L,a[i]);

}

该算法被调用执行后,得到的线性表L为:

2.voidAG(Queue&

Q)

InitQueue(Q);

inta[5]={6,12,5,15,8};

for(inti=0;

i<

i++)QInsert(Q,a[i]);

QInsert(Q,QDelete(Q));

QInsert(Q,20);

QInsert(Q,QDelete(Q)十16);

while(!

QueueEmpty(Q))cout<

vQDelete(Q)vv”;

}

该算法被调用后得到的输岀结果为:

五、算法填空,在画有横线的地方填写合适的内容(每小题6分,共12分)

1.从一维数组A[n)中二分查找关键字为K的元素的递归算法,若查找成功则返回对应元素的下标,否则返回一

IntBinsch(ElemTypeA[],Intlow,inthigh,KeyTypeK)

if(low<

=high)

intmid=(low+high)/2;

if(K==A[mid].key)——;

elseif(K<

A[mid].key);

else;

elsereturn—l;

2.已知二叉树中的结点类型BinTreeNode定义为:

structBinTreeNode{ElemTypedata;

BinTreeNode*left,*right};

其中data为结点值域,left和right分别为指向左、右子女结点的指针域。

下面函数的功能是返回二叉树点所在的层号,请在划有横线的地方填写合适内容。

IntNodeLevel(BinTreeNode*BT,ElemTypeX)

if(BT:

=NULL)return0;

//空树的层号为0

elseif(BT一>

data==X)return1;

//根结点的层号为1

//向子树中查找x结点

else{

intcl=NodeLevel(BT一>

left,X);

if(cl>

=1)returncl+1;

intc2=;

if;

//若树中不存在X结点则返回o

elsereturn0;

六、编写算法(8分)

按所给函数声明编写一个算法,从表头指针为HL的单链表中查找岀具有最大值的结点,该最大值由函数返回,

则中止运行。

EIemTypeMaxValue(LNOde*HL);

1。

BT中值为x的结

若单链表为空

“数据结构”期末考试试题答案

一、单选题(每小题2分,共12分)评分标准;

选对者得2分,否则不得分。

1.B2.B3.C4.D5.B

6.A

散列结构(次序无先后)

1•顺序结构链接结构索引结构

~2~.值(或data)子表指针(或sublist)

3.3x2.45/6一*十

4.(3h—1)/2

5.518

6•小于大于(或大于等于)

7.向上堆顶

8•邻接矩阵邻接表边集数组(次序无先后)

9.O(n2)0(e)

10.13

11.13O()

12.同一层

13.插人选择

14.O(nlog2n)O(n2)

1.先序:

a,b,c,d,e,f,e//2分

中序:

c,b,d,a,f,8,e//2分

后序:

c,d,b,e,f,e,a//2分

2.最小生成树的权:

31//6分

3.(84,79,56,42,40,46,50,38)//6分

4•带权路径长度:

131//3分

高度:

5//2分

双分支结点数:

6//1分

四、阅读算法,回答问题(每小题8分,共16分)

评分标准:

每小题正确得8分,岀现一处错误扣4分,两处及以上错误不得分。

1.(36,12,8,50,25,5,15)

2.515862028

1.feturnmid//2分

returnBinsch(A,low,mid一1,K)//2分

returnBmsch(A,mid+1,high,K)//2分

2.NodeLevel(BT—>

right,X)//3分

(c2>

=1)returnc2十1//3分

请参考语句后的注释,或根据情况酌情给分。

ElemTypeMaxValue(LNodeO*HL。

if(HL==NUlL){//2分

cerr«

"

Linkedllstisempty!

”<

<

endl;

exit

(1);

ElemTypemax:

HL一>

data;

//3分

LNOde*p=HI—>

next;

//4分

while(P!

:

NULL){//7分

if(max<

p一>

data)max=p一>

data;

p=p一>

next;

returnmax;

//8分

数据结构复习资料

一、填空题

1.数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和运算等的学科。

2.数据结构被形式地定义为(D,R),其中D是数据元素的有限集合,R是D上的关系有限集合。

3.数据结构包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容。

4.数据结构按逻辑结构可分为两大类,它们分别是_线性结构_和_非线性结构_。

5.线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。

6.在线性结构中,第一个结点_没有—前驱结点,其余每个结点有且只有1个前驱结点;

最后一个结点_没有_后续结点,其余每个结点有且只有1个后续结点。

7.在树形结构中,树根结点没有—前驱—结点,其余每个结点有且只有_1_个前驱结点;

叶子结点没有_后续_结点,其

余每个结点的后续结点数可以任意多个_。

8.在图形结构中,每个结点的前驱结点数和后续结点数可以_任意多个_。

9.数据的存储结构可用四种基本的存储方法表示,它们分别是顺序、链式、索引和散列。

10.数据的运算最常用的有5种,它们分别是插入、删除、修改、查找、排序。

11.一个算法的效率可分为_时间效率和_空间_效率。

12.在顺序表中插入或删除一个元素,需要平均移动_表中一半元素,具体移动的元素个数与_表长和该元素在表中的位置_有关。

13.线性表中结点的集合是—有限_的,结点间的关系是_一对一_的。

14.向一个长度为n的向量的第i个元素(1<

i<

n+1)之前插入一个元素时,需向后移动_n-i+1—个元素。

15.向一个长度为n的向量中删除第i个元素(1<

n)时,需向前移动n-i个元素。

16.在顺序表中访问任意一结点的时间复杂度均为0

(1)_,因此,顺序表也称为_随机存取_的数据结构。

17.顺序表中逻辑上相邻的元素的物理位置必定相邻。

单链表中逻辑上相邻的元素的物理位置不一定相邻。

18•在单链表中,除了首元结点外,任一结点的存储位置由_其直接前驱结点的链域的值_指示。

19.在n个结点的单链表中要删除已知结点*p,需找到它的前驱结点的地址,其时间复杂度为0(n)。

20.向量、栈和队列都是—线性_结构,可以在向量的_任何位置插入和删除元素;

对于栈只能在_栈顶_插入和删除

元素;

对于队列只能在_队尾插入和_队首_删除元素。

21.栈是一种特殊的线性表,允许插入和删除运算的一端称为_栈顶_。

不允许插入和删除运算的一端称为栈底。

22.队列_是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表。

23._不包含任何字符(长度为0)的串_称为空串;

_由一个或多个空格(仅由空格符)组成的串称为空白串。

24.子串的定位运算称为串的模式匹配;

被匹配的主串称为目标串,子串称为模式。

25.假设有二维数组Ax8,每个元素用相邻的6个字节存储,存储器按字节编址。

已知A的起始存储位置(基地址)为1000,则

数组A的体积(存储量)为288B;

末尾元素鶴的第一个字节地址为1282;

若按行存储时,元素的第一个字

节地址为(8+4)X6+1000=1072;

若按列存储时,元素A47的第一个字节地址为(6X7+4)X6+1000)=1276。

26.由3个结点所构成的二叉树有_5_种形态。

27.一棵深度为6的满二叉树有_m+n2=0+n2=n°

-1=31_个分支结点和_26-1=32_个叶子。

注:

满二叉树没有度为1的结点,所以分支结点数就是二度结点数。

28.一棵具有257个结点的完全二叉树,它的深度为_9。

(注:

用[log2(n)+1=|l_8.xx+1=9

29.设一棵完全二叉树有700个结点,则共有_350_个叶子结点。

答:

最快方法:

用叶子数=[n/2]=350

30.设一棵完全二叉树具有1000个结点,则此完全二叉树有_500_个叶子结点,有_499_个度为2的结点,有_1_个结点只有非空左子树,有_0个结点只有非空右子树。

用叶子数=[n/2]=500,n2=n。

-仁499。

另外,最后一结点为2i属于左叶子,右叶子是空的,所以有1个非空左子树。

完全二叉树的特点决定不可能有左空右不空的情况,所以非空右子树数=0.

31.在数据的存放无规律而言的线性表中进行检索的最佳方法是_顺序查找(线性查找)_。

32.线性有序表(a,a?

a3,…,矗6)是从小到大排列的,对一个给定的值k,用二分法检索表中与k相等的元素,在查找不成

功的情况下,最多需要检索_8_次。

设有100个结点,用二分法查找时,最大比较次数是_7_。

33.假设在有序线性表a[20]上进行折半查找,则比较一次查找成功的结点数为1;

比较两次查找成功的结点数为_2_;

比较

四次查找成功的结点数为_8_;

平均查找长度为3.7_。

解:

显然,平均查找长度=0(log2n)<

5次(25)。

但具体是多少次,则不应当按照公式

ASL="

+1Iog2(n+1)来计算(即(21Xlog221)/20=4.6次并不正确!

)。

因为这是在假设n=2-1的情况下推导出来的公式。

n

应当用穷举法罗列:

全部元素的查找次数为=(1+2X2+4X3+8X4+5X5)=74;

ASL=74/20=3.7!

!

34.折半查找有序表(4,6,12,20,28,38,50,70,88,100),若查找表中元素20,它将依次与表中元素28,6,12,

20比较大小。

35.在各种查找方法中,平均查找长度与结点个数n无关的查找方法是散列查找_。

36.散列法存储的基本思想是由_关键字的值决定数据的存储地址。

二、判断正误(在正确的说法后面打勾,反之打叉)

(X)1.链表的每个结点中都恰好包含一个指针。

错误。

链表中的结点可含多个指针域,分另U存放多个指针。

例如,双向链表中的结点可以含有两个指针域,分另U存放指向其直接前趋和直接后继结点的指针。

(X)2.链表的物理存储结构具有同链表一样的顺序。

错,链表的存储结构特点是无序,而链表的示意图有序。

(X)3.链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。

错,链表的结

点不会移动,只是指针内容改变。

(X)4.线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。

错,混淆了逻辑结构与物理结构,链表也是线性表!

且即使是顺序表,也能存放记录型数据。

(X)5.顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。

错,正好说反了。

顺序表才适合随机存取,链表恰恰适于“顺藤摸瓜”

(X)6.顺序存储方式的优点是存储密度大,且插入、删除运算效率高。

错,前一半正确,但后一半说法错误,那是链式存储的优点。

顺序存储方式插入、删除运算效率较低,在表长为n的顺序表中,

插入和删除一个数据元素,平均需移动表长一半个数的数据元素。

(X)7.线性表在物理存储空间中也一定是连续的。

错,线性表有两种存储方式,顺序存储和链式存储。

后者不要求连续存放。

(X)8.线性表在顺序存储时,逻辑上相邻的元素未必在存储的物理位置次序上相邻。

线性表有两种存储方式,在顺序存储时,逻辑上相邻的元素在存储的物理位置次序上也相邻。

(X)9.顺序存储方式只能用于存储线性结构。

顺序存储方式不仅能用于存储线性结构,还可以用来存放非线性结构,例如完全二叉树是属于非线性结构,但其最佳存储

方式是顺序存储方式。

(后一节介绍)

(X)10.线性表的逻辑顺序与存储顺序总是一致的。

错,理由同7。

链式存储就无需一致。

(X)11.线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。

错,线性表是逻辑结构概念,可以顺序存储或链式存储,与元素数据类型无关。

(X)12.在表结构中最常用的是线性表,栈和队列不太常用。

错,不一定吧?

调用子程序或函数常用,CPU中也用队列。

(V)13.栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先岀型结构。

(V)14.对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。

正确,都是线性逻辑结构,栈和队列其实是特殊的线性表,对运算的定义略有不同而已。

(X)15.栈和链表是两种不同的数据结构。

错,栈是逻辑结构的概念,是特殊殊线性表,而链表是存储结构概念,二者不是同类项。

(X)16.栈和队列是一种非线性数据结构。

错,他们都是线性逻辑结构,栈和队列其实是特殊的线性表,对运算的定义略有不同而已。

(V)17.栈和队列的存储方式既可是顺序方式,也可是链接方式。

(V)18.两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。

(X)19.队是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型结构。

错,后半句不对。

(X)20.一个栈的输入序列是12345,则栈的输出序列不可能是12345。

错,有可能。

(V)21.若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中只有n—1个非空指针域。

(X)22.二叉树中每个结点的两棵子树的高度差等于1。

(V)23.二叉树中每个结点的两棵子树是有序的。

(X)24.二叉树中每个结点有两棵非空子树或有两棵空子树。

(X)25.二叉树中每个结点的关键字值大于其左非空子树(若存在的话)所有结点的关键字值,且小于其右非空子树(若存在的话)所有结点的关键字值。

(应当是二叉排序树的特点)

(X)26.二叉树中所有结点个数是2k-1-1,其中k是树的深度。

(应2<

1)

(X)27.二叉树中所有结点,如果不存在非空左子树,则不存在非空右子树。

(X)28.对于一棵非空二叉树,它的根结点作为第一层,则它的第i层上最多能有2—1个结点。

(应21)

(V)29.用二叉链表法(link-rlink)存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。

(V)30.具有12个结点的完全二叉树有5个度为2的结点。

三、单项选择题

(B)1.非线性结构是数据元素之间存在一种:

A)一对多关系B)多对多关系C)多对一关系D)一对一关系

(C)2.数据结构中,与所使用的计算机无关的是数据的结构;

A)存储B)物理C)逻辑D)物理和存储

(C)3.算法分析的目的是:

A)找岀数据结构的合理性B)研究算法中的输入和输岀的关系

C)分析算法的效率以求改进D)分析算法的易懂性和文档性

(A)4.算法分析的两个主要方面是:

A)空间复杂性和时间复杂性B)正确性和简明性

C)可读性和文档性D)数据复杂性和程序复杂性

(C)5.计算机算法指的是:

A)计算方法B)排序方法C)解决问题的有限运算序列D)调度方法

(B)6.计算机算法必须具备输入、输岀和等5个特性。

A)可行性、可移植性和可扩充性B)可行性、确定性和有穷性

C)确定性、有穷性和稳定性D)易读性、稳定性和安全性

(C)7•数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为:

(A)存储结构(B)逻辑结构(C)顺序存储结构(D)链式存储结构

(B)8.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是

(A)110(B)108(C)100(D)120

(A)9.在n个结点的顺序表中,算法的时间复杂度是0

(1)的操作是:

(A)访问第i个结点(1<

n)和求第i个结点的直接前驱(2<

n)

(B)在第i个结点后插入一个新结点(1<

(C)删除第i个结点(1<

(D)将n个结点从小到大排序

(B)10.向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动_个元素

(A)8(B)63.5(C)63(D7

(A)11.链接存储的存储结构所占存储空间:

(A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针

(B)只有一部分,存放结点值

(C)只有一部分,存储表示结点间关系的指针

(D)分两部分,一部分存放结点值,另一部分存放结点所占单元数

(B)12.链表是一种采用存储结构存储的线性表;

(A)顺序(B)链式(C)星式(D)网状

(D)13.线性表若采用链式存储结构时,要求内存中可用存储单元的地址

(A)必须是连续的(B)部分地址必须是连续的

(C)一定是不连续的

(B

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

当前位置:首页 > 人文社科 > 设计艺术

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

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