数据结构本期末综合练习.docx

上传人:b****3 文档编号:27410926 上传时间:2023-06-30 格式:DOCX 页数:39 大小:174.87KB
下载 相关 举报
数据结构本期末综合练习.docx_第1页
第1页 / 共39页
数据结构本期末综合练习.docx_第2页
第2页 / 共39页
数据结构本期末综合练习.docx_第3页
第3页 / 共39页
数据结构本期末综合练习.docx_第4页
第4页 / 共39页
数据结构本期末综合练习.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

数据结构本期末综合练习.docx

《数据结构本期末综合练习.docx》由会员分享,可在线阅读,更多相关《数据结构本期末综合练习.docx(39页珍藏版)》请在冰豆网上搜索。

数据结构本期末综合练习.docx

数据结构本期末综合练习

数据结构期末综合练习

2013年12月

期末综合练习一

一、单项选择题

1.数据结构在计算机内存中的表示是指()。

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

C.数据元素的类型D.数据的逻辑结构

2.结构中的元素之间存在一对多的关系是()。

A.集合B.线性结构

C.树形结构D.图状结构

3.对不带头结点的单向链表,判断是否为空的条件是()(设头指针为head)。

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

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

4.设有一个长度为20的顺序表,要在第5个元素之前插入1个元素(也就是插入元素作为新表的第5个元素),则移动元素个数为()。

A.15B.16C.5D.4

5.在一个不带头结点的单循环链表中,p、q分别指向表中第一个结点和尾结点,现要删除第一个结点,可用的语句是()。

A.p=q->next;p=p->next;B.p->next=q;p=p->next;

C.p->next=q->next;q=p;D.p=p->next;q->next=p;

6.在一个尾指针为rear的不带头结点的单循环链表中,插入一个s所指的结点,并作为第一个结点,可执行()。

A.rearnext=s;snext=rearnextB.rearnext=snext;

C.rear=snextD.snext=rearnext;rearnext=s;

7.一个栈的进栈序列是1,2,3,4,5,则栈的不可能输出序列是()(进栈出栈可以交替进行)。

A.12345B.43512C.45321D.54321

8.元素a,b,c,d按顺序依次进栈,则该栈的可能输出序列是()(进栈出栈可以交替进行)。

A.c,a,b,dB.d,b,c,a

C.a,c,b,dD.d,c,a,b

9.一个队列的入队序列是2,4,6,8,按该队列的输出序列使各元素依次入栈,该栈的可能输出序列是()。

A.8,6,4,2B.6,2,4,8

C.8,4,2,6D.8,2,4,6

10.从一个栈顶指针为top的链栈中取栈顶元素,用变量x保存该元素的值,则执行()。

A.x=top->data;top=topnext;B.x=top->data;

C.top=top->next;x=top->data;D.top=top->next;x=data;

11.在一个链队中,假设f和r分别为队头和队尾指针,已生成一个结点p,要为结点p赋

值x,并入队的运算为()。

A.p->data=x;p->next=NULL;f->next=p;f=p;

B.p->data=x;p->next=NULL;r->next=p;r=p;

C.p->data=x;p->next=r;r=s;

D.p->data=x;p->next=f;f=s;

12.设有一个对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),B数组共有55个元素,则该矩阵是()阶的对称矩阵。

(矩阵中的第1个元素是a1,1)

A.5B.20C.10D.15

13.设有一个25阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素.a7,6在一维数组B中的下标是()。

(矩阵中的第1个元素是a1,1)

A.34B.14C.26D.27

14.设有一个18阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则数组中第53号元素对应于矩阵中的元素是()。

(矩阵中的第1个元素是a1,1)

A.a8,5,B.a10,8C.a8,1,D.a7,6

15.以下程序段的结果是c的值为()。

chara[8]=“”,int*p=a,intc=0;

while(*p++)c++;

A.8,B.7C.10D.12

16.以下程序段的结果是c的值为()。

char*a[5]={“12378”,“1237”,“”,“1237”,“”};

inti,c=0;

for(i=0;i<5:

i++)

if(StrCmp(a[i],“1237”)==0)c++;

A.2,B.5C.0D.1237

17.一棵有23个结点,采用链式存储的二叉树中,共有()个指针域为空。

A.24B.25C.23D.45

18.一棵采用链式存储的二叉树中,共有n个指针域被有效使用(即指针域为非空)。

该二叉树有()个结点。

A.n+1B.nC.n-1D.n-2

19.在一棵二叉树中,若编号为i的结点是其双亲结点的左孩子,则双亲结点的顺序编号为()。

A.i/2B.2i-1C.2i+1D.i/2-1

20.在一棵二叉树中,若编号为i的结点是其双亲结点的右孩子,则双亲结点的顺序编号为()。

A.i/2.0B.i/2+1C.2i+1D.i/2向下取整

21.设一棵哈夫曼树共有2n+1个叶结点,则该树有()个叶结点。

A.n-1B.nC.n+1D.2n

22.设一棵采用链式存储的二叉树,除叶结点外每个结点度数都为2,该树结点中共有2n个指针域为空。

则该树有()个叶结点。

A.2nB.2n+1C.2n+2D.n

23.已知如图1所示的一个图,若从顶点a出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为()。

A.abecdfB.acfebdC.aebcfdD.aedbfc

图1

24.已知如图2所示的一个图,若从顶点a出发,按广度优先搜索法进行遍历,则可能得到的一种顶点序列为()。

A.acedfbB.aecfdbC.aecdfbD.acebfd

图2

25.已知如图3所示的一个图,若从顶点B出发,按广度优先法进行遍历,则可能得到的一种顶点序列为()。

A.BADEHCFGB.BADEHCGFC.BADECHFGD.BADEHCFG

图3

26.一组记录的关键字序列为(42,37,62,40,32,92),利用快速排序算法,以第一个关键字为分割元素,算法经过一次划分后结果为()。

A.32,37,40,42,62,92B.37,32,40,42,62,92

C.32,40,37,42,62,92D.32,37,42,40,62,92

27.一组记录的关键字序列为(46,38,56,40,79,84),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为()。

A.40,38,46,79,56,84B.40,38,46,56,79,84

C.40,38,46,84,56,79D.38,40,46,56,79,84

28.一组记录的关键字序列为(80,57,41,39,46,47),利用堆排序(堆顶元素是最小元素)的方法建立的初始堆为()。

A.39,46,41,57,80,47B.39,47,46,80,41,57

C.41,39,46,47,57,80D.39,80,46,47,41,57

29.在有序表{21,23,28,33,43,45,46,73,77,78,89,99,106}中,用折半查找值43时,经()次比较后查找成功。

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

二、填空题

1.数据元素可以有一个或________组成。

2.本书中介绍的树形结构和_______属非线性结构。

3.结构中的数据元素存在一对一的关系称为线性结构。

而数据元素存在_______的关系

称为图状结构。

4.设有一个长度为18的顺序表,要在第4个元素之前插入2个元素(也就是插入元素作为

新表的第5个和第4个元素),则最少要移动元素的个数为()。

5.设有一个长度为25的顺序表,要删除前3个元素,则最少要移动元素的个数为()。

6.在双向链表中,要删除p所指的结点,可以先用语句(p->prior)->next=p->next;然

再用语句________。

7.在双向链表中,要删除p所指的结点,其中所用的一条语句(p->prior)->next=p->next;

的功能是:

使P所指结点的直接前驱的右指针指向________。

8.在一个单向链表中p所指结点之后插入一个s所指向的结点时,应执行s->next=p->next;

和_______的操作.

9.设有一个头指针为head的单向链表,p指向链表中的某结点,若要使该链表成为单向

循环链表,可用语句while(p->next!

=NULL)p=p->next;和________。

10.一个栈和一个队列的输入序列都为abcdefg,它们可能有相同的输出序列吗?

_________。

(若没有则回答没有,若有则写出序列,进栈出栈可以交替进行)。

11.向一个栈顶指针为top的链栈中插入一个p所指结点时,某人用语句top=p;p->next=top;

这样做的结果使p所指向的结点的指针域指向了_______。

12.从一个栈顶指针为top的链栈中取栈顶元素,用d保存栈顶元素的值,可执行

________。

(结点的数据域为data)

13.在一个链队中,设front和rear分别为队头和队尾指针,则s所指结点(数据域已赋值)的入队操作为s->next=NULL;.________和rear=s;

14.循环链队列中,设front和rear分别为队头和队尾指针,(最多元素为MaxSize,),判断循环链队列为空的条件是________为真。

15.设有n阶对称矩阵A,用一维数组s压缩存储A的下三角元素,s的下标从零开始,

元素s[26]相应于A中的元素为_______。

(矩阵中的第1个元素是a1,1)

16.对稀疏矩阵进行压缩存储,可采用三元组表,设a是稀疏矩阵A相应的三元组表类型(结

构体类型)变量,a中的一个成员项是三元组类型的结构体数组data,按书中定义,若a.data[0].i=2;a.data[0].j=3;a.data[0].v=16;它提供的A数组的相关信息有_______

17.对稀疏矩阵进行压缩存储,可采用三元组表,设a是稀疏矩阵A相应的三元组表类型(结构体类型)变量,a中的一个成员项是三元组类型的结构体数组data,按书中定义,若data的下标从零开始,最后一个元素下标为10,又a.data[10].i=8;a.data[10].j=5;a.data[10].v=36;它提供的A矩阵的相关信息有_______。

18.设有一棵深度为5的完全二叉树,该树共有20个结点,第五层上有个叶结点。

(根所在结点为第1层)

19.设有一棵有78个结点的完全二叉树,该树共有_________层。

(根所在结点为第1层)

20.________树可得到一个有序序列。

21.对于一棵具有________个结点的二叉树,其相应的链式存储结构中共有n+1个指针域空.

22.如图4所示的二叉树,其后序遍历序列为_________。

图4

23.如图5所示的二叉树,其中序遍历序列为_________。

 

 

图5

24.给定一组权重值,构造哈夫曼树,哈夫曼树的高度一定是唯一的,这种说法是__________的。

(回答正确或不正确)

 

三、综合题

1.

(1)已知某二叉树的后序遍历序列是debca,中序遍历序列是dbeac,试画出该二叉树。

(2)若上述二叉树的各个结点的字符分别代表不同的整数(其中没有相等的),并恰好使该树成为一棵二叉排序树,试给出a、b、c、d、e的大小关系。

(3)给出该树的前序遍历序列。

 

2.

(1)说明什么是顶点活动网(AOV网)和拓扑序列

(2)设有向图G如下,写出3种拓扑序列,

(3)在图G中增加一条边,使图G仅有一条拓扑序列

图6

 

3.

(1)利用筛选过程把序列{42,82,67,102,16,32,57,52}建成堆(小根堆),画出相应的完全二叉树(不要求中间过程)。

(2)写出对上述堆对应的完全二叉树进行中序遍历得到的序列。

 

4.如下是一棵二叉排序树,A1,A2,…A9代表1,2,3,…9中各个不同数字,

(1)给出对该树中序遍历的结果

(2)A3,A5,A7的值各为多少?

(3)请在该树中再插入一个结点9.5作为叶结点,并使它仍然是一棵二叉排序树

图7

 

5.设查找表为(11,12,13,14,15,16,17,18,19,20,21),元素的下标从0开始。

(1)画出对上述查找表进行折半查找所对应的判定树(树中结点用数值表示)

(2)说明成功查找到元素15,19各需要经过多少次比较?

(3)说明查找不到元素10,15.5各需要经过多少次比较?

(4)給出中序遍历判定树的序列。

 

6.

(1)设有查找表{17,26,14,16,15,30,18,19,28},依次取表中数据构造一棵二叉

排序树.

(2)对上述二叉树给出后序遍历的结果

(3).对上述二叉树给出中后序遍历的结果

(4))在上述二叉树中查找元素15共要进行多少次元素的比较?

 

四、程序填空题

1.以下程序是折半插入排序的算法

设待排序的记录序列存放在a[1],…a[n]中,以a[0]作为辅助工作单元,以下程序是要把a[i]插入到已经有序的序列a[1],…a[i-1]中。

voidbinsort(NODEa[],intn)

{intx,i,j,s,k,m;

for(i=2;i<=__

(1)___;i++)

{a[0]=a[i];

x=a[i].key;

s=1;

j=i-1;

while(s<=j)

{m=__

(2)___

if(x

__(3)___

else

__(4)___

}

for(k=i-1;k>=j+1;k--)

__(5)___=a[k];

a[j+1]=a[0];

}

}

2.以下函数是二叉排序树的查找算法,若二叉树为空,则返回根结点的指针,否则,返回值是指向树结点的结构指针p(查找成功p指向查到的树结点,不成功p指向为NULL)完成程序中的空格

typedefstructBnode

{intkey;

structBnode*left;

structBnode*right;

}Bnode;

Bnode*BSearch(Bnode*bt,intk)

/*bt用于接收二叉排序树的根结点的指针,k用以接收要查找的关键字*/

{Bnode*p;

if(bt==___

(1)_____)

return(bt);

p=bt;

while(p->key!

=__

(2)______)

{if(kkey)

___(3)_____;

else___(4)_____;

if(p==NULL)break;

}

return(___(5)_____);

}

3.以下函数为链栈的进栈操作,x是要进栈的结点的数据域,top为栈顶指针

structnode

{ElemTypedata;

structnode*next;

};

structnode*top;

voidPush(ElemTypex)

{

structnode*p;

p=(structnode*)malloc(___

(1)_____);

p->data=x;

___

(2)_____;

_____(3)___;

}

}

4.设有一个头指针为head的不带头结点单向链表,p、q是指向链表中结点类型的指针变量,p指向链表中结点a,(设链表中没有结点的数据域与结点a的数据域相同),写出相关语句

(1).使该单向链表成为单向循环链表

(2)插入结点s,使它成为a结点的直接前驱

q=p;x=p->data;

while(__

(1)___)q=q->next;

q->next=head;

q=p;p=p->next;

while(p->data!

=x)

{q=p;

__

(2)___

}

s->next=p;

__(3)___

期末综合练习一答案

一、单项选择题

1.B2.C3.A4.B5.D6.D7.B8.C9.A10.B11.B12.C13.D14.B15.B16.A17.A18.A19.A20.D21.C22.D23.D24.C25.C26.A27.B28.A29.B

二、填空题

1.多个数据项

2.图状结构

3.多对多

4.15

5.22

6.(p->next)->prior=p->prior;

7.P所指结点的直接后继

8.p->next=s;

9.p->next=head;

10.abcdefg

11.p本身

12.d=top->data;

13.rear->next=s;

14.front==rear

15.a7,6

16.A的第一个非零元素的下标为2,3,元素为16

17.A共有11个非零元素,a8,5为36

18.5

19.7

20.中序遍历

21.n

22.

23.

24.不正确

 

三、综合应用题

1.

(1)

 

图8

(2)d

(3)abdec

 

2.

(1)用顶点表示活动,边表示活动间先后关系的有向图称为顶点活动网

在顶点活动网中,若不存在回路,则所有活动可排列成一个线性序列,使每个活动的所

有前驱活动都排在该活动的前面,称此序列为拓扑序列

(2)abdcadbcdabc

(3)在b和d间添加有向边

 

3.

(1)

 

初始树堆

 

图9

(2)102,52,42,82,16,67,32,57

4.

(1)A7A4A8A2A5A9A1A3A6

123456789

(2)851

(3)

图10

5.

图11

(2)4次2次

(3)3次4次

(4)11,12,13,14,15,16,17,18,19,20,21

 

6.

(1)见图12

(2)15,16,14,19,18,28,30,26,17

(3)14,15,16,17,18,19,26,28,30

(4)4

 

图12

 

四、程序填空题

1.

(1)n

(2)(s+j)/2;

(3)j=m-1;

(4)s=m+1;

(5)a[k+1]

 

2.

(1)NULL

(2)k

(3)p=p->left

(4)p=p->right

(5)p

 

3

(1)sizeof(structnode)

(2)p->next=top

(3)top=p

 

4.

(1)q->next!

=NULL

(2)p=p->next;

(3)q->next=s;

期末综合练习二

一、单项选择题

1.在数据结构和算法中,与所使用的计算机有关的是()。

A.数据元数间的抽象关系B.数据的存储结构

C.算法的时间复杂度D.数据的逻辑结构

2.一种逻辑结构在存储时()。

A.只要存储数据元素间的关系B.只能采用一种存储结构

C.可采用不同的存储结构D.只要存储数据元素的值

3.对顺序表,以下叙述中正确的是()。

A.用一组地址连续的存储单元依次存放线性表的数据元素

B.各个数据元素的首地址是连续的

C.数据元素不能随机访问

D.插入操作不需要移动元素

4.对链表,以下叙述中正确的是()。

A.不能随机访问任一结点B.结点占用的存储空间是连续的

C.插入删除元素的操作一定要要移动结点D.可以通过下标对链表进行直接访问

5.设有一个长度为25的顺序表,要删除第10个元素(下标从1开始),需移动元素的个数为

()。

A.9B.10C.15D.16

6.线性表在存储后,如果相关操作是:

要求已知第i个结点的位置访问该结点的前驱结点,则采用()存储方式是不可行的。

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

7.设单向链表中,指针p指向结点A,若要删除A的直接后继,则所需修改指针的操作为()。

A.p->next=p->next->next;B.p=p->next;

C.p=p->next->next;D.p->next=p;

8.栈和队列的共同特点是()。

A.都是先进后出B.元素都可以随机进出

C.只容许在端点处插入和删除元素D.都是先进先出

9.元素1,3,5,7按顺序依次进栈,按该栈的可能输出序列依次入队列,该队列

的可能输出序列是()。

(进栈出栈可以交替进行)。

A.7,5,3,1B.7,3,1,5

C.7,5,1,3D.5,1,3,7

10.元素2,4,6,8按顺序依次进栈,按该栈的的可能输出序列依次入队列,该队列的可能输出序列是()(进栈出栈可以交替进行)。

A.8,6,2,4B.8,4,2,6

C.6,2,4,8D.8,6,4,2

11.对一个栈顶指针为top的链栈进行进栈操作,设P为待进栈的结点,则执行()。

A.p=top->next;top=topnext;B.p->next=top;

C.p->next=top;top=p;D.top=p;

12.在一个不带头结点的链队中,假设f和r分别为队头和队尾指针,则从该对列中删除一

个结点并把结点的值保存在变量x中的运算为()。

A.x=rdata;r=rnext;B.r=rnext;x=rdata

C.x=fdata;f=fnext;D.f=fnext;x=fdata

13.设有一个18阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则数组中第33号元素对应于矩阵中的元素是()。

(矩阵中的第1个元素是a1,1)

A.a7,6B.a10,8C.a9,2D.a8,5

14.设有一个20阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则数组中第38号元素对应于矩阵中的元素是()。

(矩阵中的第1个元素是a

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

当前位置:首页 > 工程科技 > 环境科学食品科学

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

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