大学数据结构期末考试试题有答案.docx

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

大学数据结构期末考试试题有答案.docx

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

大学数据结构期末考试试题有答案.docx

大学数据结构期末考试试题有答案

大学数据结构期末考试试题(有答案)

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

一、单选题(每小题2分,共12分)

1.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行()。

A.HL=psp一>next=HL

B.p一>next=HL;HL=p3

C.p一>next=Hl;p=HL;

D.p一>next=HL一>next;HL一>next=p;

2.n个顶点的强连通图中至少含有()。

A.n—l条有向边B.n条有向边

C.n(n—1)/2条有向边D.n(n一1)条有向边

3.从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为()。

A.O

(1)B.O(n)

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

4.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为()。

A.24B.48

C.72D.53

5.当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为()参数,以节省参数值的传输时间和存储参数的空间。

A.整形B.引用型

C.指针型D.常值引用型·

6.向一个长度为n的顺序表中插人一个新元素的平均时间复杂度为()。

A.O(n)B.O

(1)

C.O(n2)D.O(10g2n)

二、填空题(每空1分,共28分)

1.数据的存储结构被分为——、——、——和——四种。

2.在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自分别为——域和——域。

3.——中缀表达式3十x*(2.4/5—6)所对应的后缀表达式为————。

4.在一棵高度为h的3叉树中,最多含有——结点。

5.假定一棵二叉树的结点数为18,则它的最小深度为——,最大深度为——·

6.在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定——该结点的值,右子树上所有结点的值一定——该结点的值。

7.当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层——调整,直到被调整到——位置为止。

8.表示图的三种存储结构为——、——和———。

9.对用邻接矩阵表示的具有n个顶点和e条边的图进行任一种遍历时,其时间复杂度为——,对用邻接表表示的图进行任一种遍历时,其时间复杂度为——。

10.从有序表(12,18,30,43,56,78,82,95)中依次二分查找43和56元素时,其查找长度分别为——和——·

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.VOldAC(List&L)

{

InitList(L);

InsertRear(L;25);

InsertFront(L,50);

IntaL4]={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<5;i++)QInsert(Q,a[i]);

QInsert(Q,QDelete(Q));

QInsert(Q,20);

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

while(!

QueueEmpty(Q))cout<

}

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

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

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

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

{

if(low<=high)

{

intmid=(low+high)/2;

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

elseif(K

else;

}

elsereturn—l;

}

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

structBinTreeNode{ElemTypedata;BinTreeNode*left,*right};

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

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

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);

 

 

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

一、单选题(每小题2分,共12分)

评分标准;选对者得2分,否则不得分。

1.B2.B3.C4.D5.B6.A

二、填空题(每空1分,共28分)

1.顺序结构链接结构索引结构散列结构(次序无先后)

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

3.3x2.45/6一*十

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

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

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

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

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

(应2i-1)

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

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

(应2i-1)

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

(√)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个结点的顺序表中,算法的时间复杂度是O

(1)的操作是:

(A)访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)

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

(C)删除第i个结点(1≤i≤n)

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

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

(A)8(B)63.5(C)63(D)7

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

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

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

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

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

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

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

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

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

(C)一定是不连续的(D)连续或不连续都可以

(B)14.线性表L在情况下适用于使用链式结构实现。

(A)需经常修改L中的结点值(B)需不断对L进行删除插入

(C)L中含有大量的结点(D)L中结点结构复杂

(B)15.栈中元素的进出原则是

A.先进先出B.后进先出C.栈空则进D.栈满则出

(C)16.若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为

A.iB.n=iC.n-i+1D.不确定

(B)17.判定一个栈ST(最多元素为m0)为空的条件是

A.ST->top<>0B.ST->top=0C.ST->top<>m0D.ST->top=m0

(C)18.在一个图中,所有顶点的度数之和等于图的边数的倍。

A.1/2B.1C.2D.4

(B)19.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的倍。

A.1/2B.1C.2D.4

(B)20.有8个结点的无向图最多有条边。

A.14B.28C.56D.112

(C)21.有8个结点的有向完全图有条边。

A.14B.28C.56D.112

(B)22.在表长为n的链表中进行线性查找,它的平均查找长度为

A.ASL=n;B.ASL=(n+1)/2;

C.ASL=

+1;D.ASL≈log2(n+1)-1

(A)23.折半查找有序表(4,6,10,12,20,30,50,70,88,100)。

若查找表中元素58,则它将依次与表中比较大小,查找结果是失败。

A.20,70,30,50B.30,88,70,50C.20,50D.30,88,50

(C)24.对22个记录的有序表作折半查找,当查找失败时,至少需要比较次关键字。

A.3B.4C.5D.6

(A)25.链表适用于查找

A.顺序B.二分法C.顺序,也能二分法D.随机

 

《数据结构与算法》复习题

一、选择题。

1.在数据结构中,从逻辑上可以把数据结构分为C。

A.动态结构和静态结构B.紧凑结构和非紧凑结构

C.线性结构和非线性结构D.内部结构和外部结构

2.数据结构在计算机内存中的表示是指A。

A.数据的存储结构B.数据结构C.数据的逻辑结构D.数据元素之间的关系

3.在数据结构中,与所使用的计算机无关的是数据的A结构。

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

4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储C。

A.数据的处理方法B.数据元素的类型

C.数据元素之间的关系D.数据的存储方法

5.在决定选取何种存储结构时,一般不考虑A。

A.各结点的值如何B.结点个数的多少

C.对数据有哪些运算D.所用的编程语言实现这种结构是否方便。

6.以下说法正确的是D。

A.数据项是数据的基本单位

B.数据元素是数据的最小单位

C.数据结构是带结构的数据项的集合

D.一些表面上很不相同的数据可以有相同的逻辑结构

7.算法分析的目的是C,算法分析的两个主要方面是A。

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

C.分析算法的效率以求改进C.分析算法的易读性和文档性

(2)A.空间复杂度和时间复杂度B.正确性和简明性

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

8.下面程序段的时间复杂度是O(n2)。

s=0;

for(I=0;i

for(j=0;j

s+=B[i][j];

sum=s;

9.下面程序段的时间复杂度是O(n*m)。

for(i=0;i

for(j=0;j

A[i][j]=0;

10.下面程序段的时间复杂度是O(log3n)。

i=0;

while(i<=n)

i=i*3;

11.在以下的叙述中,正确的是B。

A.线性表的顺序存储结构优于链表存储结构

B.二维数组是其数据元素为线性表的线性表

C.栈的操作方式是先进先出

D.队列的操作方式是先进后出

12.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着B。

A.数据元素具有同一特点

B.不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致

C.每个数据元素都一样

D.数据元素所包含的数据项的个数要相等

13.链表不具备的特点是A。

A.可随机访问任一结点B.插入删除不需要移动元素

C.不必事先估计存储空间D.所需空间与其长度成正比

14.不带头结点的单链表head为空的判定条件是A。

A.head==NULLBhead->next==NULL

C.head->next==headDhead!

=NULL

15.带头结点的单链表head为空的判定条件是B。

A.head==NULLBhead->next==NULL

C.head->next==headDhead!

=NULL

16.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用

D存储方式最节省运算时间。

A.单链表B.给出表头指针的单循环链表C.双链表D.带头结点的双循环链表

17.需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是B。

A.单链表B.静态链表C.线性链表D.顺序存储结构

18.非空的循环单链表head的尾结点(由p所指向)满足C。

A.p->next==NULLB.p==NULL

C.p->next==headD.p==head

19.在循环双链表的p所指的结点之前插入s所指结点的操作是D。

A.p->prior=s;s->next=p;p->prior->next=s;s->prior=p->prior

B.p->prior=s;p->prior->next=s;s->next=p;s->prior=p->prior

C.s->next=p;s->prior=p->prior;p->prior=s;p->prior->next=s

D.s->next=p;s->prior=p->prior;p->prior->next=s;p->prior=s

20.如果最常用的操作是取第i个结点及其前驱,则采用D存储方式最节省时间。

A.单链表B.双链表C.单循环链表D.顺序表

21.在一个具有n个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是B。

A.O

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

22.在一个长度为n(n>1)的单链表上,设有头和尾两个指针,执行B操作与链表的长度有关。

A.删除单链表中的第一个元素

B.删除单链表中的最后一个元素

C.在单链表第一个元素前插入一个新元素

D.在单链表最后一个元素后插入一个新元素

23.与单链表相比,双链表的优点之一是D。

A.插入、删除操作更简单

B.可以进行随机访问

C.可以省略表头指针或表尾指针

D.顺序访问相邻结点更灵活

24.如果对线性表的操作只有两种,即删除第一个元素,在最后一个元素的后面插入新元素,则最好使用B。

A.只有表头指针没有表尾指针的循环单链表

B.只有表尾指针没有表头指针的循环单链表

C.非循环双链表

D.循环双链表

25.在长度为n的顺序表的第i个位置上插入一个元素(1≤i≤n+1),元素的移动次数为:

A。

A.n–i+1B.n–iC.iD.i–1

26.对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为C。

A.顺序表B.用头指针表示的循环单链表

C.用尾指针表示的循环单链表D.单链表

27.下述哪一条是顺序存储结构的优点?

C。

A插入运算方便B可方便地用于各种逻辑结构的存储表示

C存储密度大D删除运算方便

28.下面关于线性表的叙述中,错误的是哪一个?

B。

A线性表采用顺序存储,必须占用一片连续的存储单元

B线性表采用顺序存储,便于进行插入和删除操作。

C线性表采用链式存储,不必占用一片连续的存储单元

D线性表采用链式存储,便于进行插入和删除操作。

29.线性表是具有n个B的有限序列。

A.字符B.数据元素C.数据项D.表元素

30.在n个结点的线性表的数组实现中,算法的时间复杂度是O

(1)的操作是A。

A.访问第i(1<=i<=n)个结点和求第i个结点的直接前驱(1

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

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

D.以上都不对

31.若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为C。

A.O(0)B.O

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

32.对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为C。

A.O(n)O(n)B.O(n)O

(1)C.O

(1)O(n)D.O

(1)O

(1)

33.线性表(a1,a2,…,an)以链式方式存储,访问第i位置元素的时间复杂度为C。

A.O(0)B.O

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

34.单链表中,增加一个头结点的目的是为了C。

A.使单链表至少有一个结点B.标识表结点中首结点的位置

C.方面运算的实现D.说明单链表是线性表的链式存储

35.在单链表指针为p的结点之后插入指针为s的结点,正确的操作是B。

A.p->next=s;s->next=p->nextB.s->next=p->next;p->next=s;

C.p->next=s;p->next=s->nextD.p->next=s->next;p->next=s

36.线性表的顺序存储结构是一种A。

A.随机存取的存储结构B.顺序存取的存储结构

C.索引存取的存储结构D.Hash存取的存储结构

37.栈的特点是B,队列的特点是A。

A.先进先出B.先进后出

38.栈和队列的共同点是C。

A.都是先进后出B.都是先进先出

C.只允许在端点处插入和删除元素D.没有共同点

39.一个栈的进栈序列是a,b,c,d,e,则栈的不可能的输出序列是C。

A.edcbaB.decbaC.dceabD.abcde

40.设有一个栈,元素依次进栈的顺序为A、B、C、D、E。

下列C是不可能的出栈序列。

A.A,B,C,D,EB.B,C,D,E,AC.E,A,B,C,DD.E,D,C,B,A

41.以下B不是队列的基本运算?

A.从队尾插入一个新元素B.从队列中删除第i个元素

C.判断一个队列是否为空D.读取队头元素的值

42.若已知一个栈的进栈序列是1,2,3,,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为C。

A.iB.n-iC.n-i+1D.不确定

43.判定一个顺序栈st(最多元素为MaxSize)为空的条件是B。

A.st->top!

=-1B.st->top==-1

C.st->top!

=MaxSizeD.st->top==MaxSize

44.判定一个顺序栈st(最多元素为MaxSize)为满的条件是D。

A.st->top!

=-1B.st->top==-1

C.st->top!

=MaxSizeD.st->top==MaxSize

45.一个队列的入队序列是1,2,3,4,则队列的输出序列是B。

A.4,3,2,1B.1,2,3,4

C.1,4,3,2D.3,2,4,1

46.判定一个循环队列qu(最多元素为MaxSize)为空的条件是C。

A.qu->rear–qu->front==MaxSizeB.qu->rear–qu->front-1==MaxSize

C.qu

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

当前位置:首页 > 表格模板 > 合同协议

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

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