浙江工商大学数据结构期末复习题2.docx

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

浙江工商大学数据结构期末复习题2.docx

《浙江工商大学数据结构期末复习题2.docx》由会员分享,可在线阅读,更多相关《浙江工商大学数据结构期末复习题2.docx(76页珍藏版)》请在冰点文库上搜索。

浙江工商大学数据结构期末复习题2.docx

浙江工商大学数据结构期末复习题2

数据结构习题集

一、选择题

1.在一个长度为n的顺序表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需向后移动B个元素。

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

2.在一个具有n个单元的顺序栈中,假定以地址低端作为栈底,以top作为栈顶指针,则当做退栈处理时,top变化为C。

A.top不变B.top=-nC.top=top-1D.top=top+1

3.向顺序栈中压入元素时,是A。

A.先存入元素,后移动栈顶指针B.先移动栈顶指针,后存入元素

4.在一个顺序存储的循环队列中,队首指针指向队首元素的A。

A.前一个位置B.后一个位置C.队首元素位置D.队尾元素位置

5.若进栈序列为1,2,3,4,进栈过程中可以出栈,则C不可能是一个出栈序列。

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

6.在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队首指针和队尾指针,则判断队空的条件是C。

A.front==rear+1B.front+1==rearC.front==rearD.front==0

7.在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队首指针和队尾指针,则判断队满的条件是D。

A.rear%n==frontB.(rear-1)%n==front

C.(rear-1)%n==rearD.(rear+1)%n==front

8.从一个具有n个节点的单链表中查找其值等于x结点时,在查找成功的情况下,需平均比较D个结点。

A.nB.n/2C.(n-1)/2D.(n+1)/2

9.在一个单链表中,已知*q结点是*p结点的前驱结点,若在*q和*p之间插入*s结点,则执行C。

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

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

10.向一个栈项指针为hs的链栈中插入一个*s结点时,则执行C。

A.hs->next=s;B.s->next=hs->next;hs->next=s;

C.s->next=hs;hs=s;D.s->next=hs;hs=hs->next;

11.在一个链队列中,假定front和rear分别为队首指针和队尾指针,则进行插入*s结点的操作时应执行B。

A.front->next=s;front=s;B.rear->next=s;rear=s;

C.front=front->next;D.front=rear->next;

12.线性表是A。

A.一个有限序列,可以为空B.一个有限序列,不能为空

C.一个无限序列,可以为空D.一个无限序列,不能为空

13.对顺序存储的线性表,设其长度为n,在任何位置上插入或删除操作都是等概率的,删除一个元素时大约要移动表中的C个元素。

A.n+1B.n-1C.(n-1)/2D.n

14.线性表采用链式存储时,其地址D。

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

C.一定是不连续的D.连续与否均可以

15.设单链表中指针p指着结点(数据域为m),指针f指着将要插入的新结点(数据域为x),当x插在结点m之后时,只要先修改B后修改p->link=f即可。

A.f->link=p;B.f->link=p->link;

C.p->link=f->link;D.f=nil;

16.在双向链表存储结构中,删除p所指的结点时需修改指针B。

A.((p->rlink)->rlink)->link=p;p->rlink=(p->rlink)->rlink;

B.(p->llink)->rlink=p->rlink;(p->rlink)->llink=p->llink;

C.p->llink=(p->llink)->llink;((p->llink)->llink)->rlink=p;

D.((p->llink)->llink)->rlink=p;p->llink=(p->llink)->llink;

17.在双向链表存储结构中,删除p所指的结点的前趋结点(若存在)时需修改指针A。

A.((p->llink)->llink)->rlink=p;p->llink=(p->llink)->llink;

B.((p->rlink)->rlink)->llink=p;p->rlink=(p->rlink)->rlink;

C.(p->llink)->rlink=p->rlink;(p->rlink)->llink=p->llink;

D.p->llink=(p->llink)->llink;((p->llink)->llink)->rlink=p;

18.根据线性表的链式存储结构,每个结点所含指针的个数,链表分为单链表和B。

A.循环链表B.多重链表C.普通链表D.无头结点链表

19.在数据结构中,与所使用的计算机无关的数据叫C结构。

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

20.二分法查找A存储结构。

A.只适用于顺序B.只适用于链式C.既适用于顺序也适用于链式

D.既不适合于顺序也不适合于链式

21.在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上B。

A.一定相邻B.不一定相邻C.有时相邻

23.假定在一棵二叉树中,双分支结点数为15个,单分支结点数为32个,则叶子结点数为B。

A.15B.16C.17D.47

24.假定一棵二叉树的结点数为18个,则它的最小高度B。

性质2

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

25.在一棵二叉树中第五层上的结点数最多为C。

性质1

A.8B.15C.16D.32

26.在一棵具有五层的满二叉树中,结点总数为A。

性质3

A.31B.32C.33D.16

27.已知8个数据元素为(34、76、45、18、26、54、92、65),按照依次插入结点的方法生成一棵二叉排序树后,最后两层上的结点总数为B。

不理解?

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

28.由分别带权为9、2、5、7的四个叶子结点构造一棵哈夫曼树,该树的带权路径长度为C。

A.23B.37C.44D.46为什么不是46?

29.在树中除根结点外,其余结点分成m(m≥0)个A的集合T1,T2,T3...Tm,每个集合又都是树,此时结点T称为Ti的父结点,Ti称为T的子结点(1≤i≤m)。

A.互不相交B.可以相交

C.叶结点可以相交D.树枝结点可以相交

30.下面答案D是查找二叉树(又称二叉排序树)。

A.二叉树中的每个结点的两棵子树的高度差的绝对值不大于1

B.二叉树中的每个结点的两棵子树的高度差等于1

C.二叉树中的每个结点的两棵子树是有序的

D.二叉树中的每个结点的关键字大于其左子树(如果存在)所有结点的关键字值,且小于其右子树(如果存在)所有结点的关键字值。

31.如果结点A有三个兄弟,而且B是A的双亲,则B的出度是B。

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

32.一个深度为L的满K叉树有如下性质:

第L层上的结点都是叶子结点,其余各层上每个结点都有K棵非空子树。

如果按层次顺序从1开始对全部结点编号,编号为n的有右兄弟的条件是B。

A.(n-1)%k==0B.(n-1)%k!

=0C.n%k==0D.n%k!

=0

33.在完全二叉树中,当i为奇数且不等于1时,结点i的左兄弟是结点D,否则没有左兄弟。

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

34.某二叉树T有n个结点,设按某种遍历顺序对T中的每个结点进行编号,编号值为1,2,…,n且有如下性质:

T中任一结点V,其编号等于左子树上的最小编号减1,而V的右子树的结点中,其最小编号等于V左子树上结点的最大编号加1。

这时按B编号。

A.中序遍历序列B.前序遍历序列C.后序遍历序列D.层次遍历序列

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

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

36.对于一个具有n个顶点和e条边的无向图,若采用邻接表表示,则表头向量的大小为A。

A.nB.n+1C.n-1D.n+e

37.具有n个顶点的无向完全图,边的总数为D条。

A.n-1B.nC.n+1D.n*(n-1)/2

38.设图G有n个顶点和e条边,当G是非孤立顶点的连通图时有2e>=n,故可推得深度优先搜索的时间复杂度为A。

A.O(e)B.O(n)C.O(ne)D.O(n+e)

39.最小代价生成树D。

A.是唯一的B.不是唯一的C.唯一性不确定D.唯一性与原因的边的权数有关

40.在无向图G的邻接矩阵A中,若A[i,j]等于1,则A[j,i]等于C。

A.i+jB.i-jC.1D.0

41.图的深度优先或广度优先遍历的空间复杂性均为A。

(访问标志位数组空间)

A.O(n)B.O(e)C.O(n-e)D.O(n+e)

42.已知一个有序表为(12、18、24、35、47、50、62、83、90、115、134),当二分查找值为90的元素时,B次比较后查找成功;当二分查找值为47的元素时,D次比较后查找成功。

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

43.散列函数有一个共同性质,即函数值应当以D取其值域的每个值。

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

44.设散列地址空间为0~m-1,k为关键字,用p去除k,将所得的余数作为k的散列地址,即H(k)=k%p。

为了减少发生冲突的频率,一般取p为D。

A.小于m的最大奇数B.小于m的最大偶数

C.mD.小于m的最大素数

45.目前以比较为基础的内部排序时间复杂度T(n)的范围是A③;其比较次数与待排序的记录的初始排列状态无关的是B②。

A.①O(log2n)~O(n)②O(lon2n)~O(n2)

③O(nlog2n)~O(n2)④O(n)~O(n2)⑤O(n)~O(nlog2n)

B.①插入排序②先用二分法查找,找到后插入排序

③快速排序④冒泡排序

46.设关键字序列为:

3,7,6,9,8,1,4,5,2。

进行排序的最小交换次数是A。

A.6B.7C.8D.20

47.在归并排序过程中,需归并的趟数为C。

A.nB.√nC.log2n向上取整

D.log2n向下取整

48.一组记录排序码为(46、79、56、38、40、84),则利用堆排序的方法建立的初始堆为B。

A.(79、46、56、38、40、80)B.(84、79、56、38、40、46)

C.(84、79、56、46、40、38)D.(84、56、79、40、46、38)

49.一组记录的关键码为(46、79、56、38、40、84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为C。

A.(38、40、46、56、79、84)B.(40、38、46、79、56、84)

C.(40、38、46、56、79、84)D.(40、38、46、84、56、79)

50.在平均情况下快速排序的时间复杂性为C,空间复杂性为B;在最坏情况下(如初始记录已有序),快速排序的时间复杂性为D,空间复杂性为A。

A.O(n)B.O(log2n)C.O(nlog2n)D.O(n2)

选择题参考答案:

1.B2.C3.A4.A5.C6.C7.D8.D9.C10.C

11.B12.A13.C14.D15.B16.B17.A18.B19.C20.A

21.B22.D23.B24.B25.C26.A27.B28.C29.A30.D

31.B32.B33.D34.B35.B36.A37.D38.A39.D40.C

41.A42.B,D43.D44.D45.A:

③B:

46.A采用选择排序对给定的关键字序列进行排序,只需6次。

47.C48.B49.C50.CBDA

二、填空题

1.在线性结构中第一结点[1]无前驱结点,其余每个结点有且只有[2]一个前驱结点;最后一个结点[3]无后继结点,其余每个结点有且只有[4]一个后继结点。

2.在树型结构中,树根结点没有[1]前趋结点,其余每个结点有且仅有[2]一个前驱结点;树叶结点没有[3]后继结点,其余每个结点的[4]后继结点数不受限制。

3.一个数据结构用二元组表示时,它包括[1]数据元素的集合K和K上[2]二元关系的集合R。

4.对于一个二维数组A[1..m,1..n],若按行序为主序存储,则任一元素A[i,j]的相对地址(即偏移地址)为[1](i-1)*n+j-1。

5.对于顺序存储的线性表,当随机插入或删除一个元素时,约需平均移动表长[1]一半的元素。

6.对于长度为n的顺序表,插入或删除元素的时间复杂性为[1]O(n);对于顺序栈或队列,插入或删除元素的时间复杂性为[2]O

(1)。

7.在具有n个单元、顺序存储的循环队列中,队满时共有[1]n-1个元素。

8.从顺序表中删除第i个元素时,首先把第i个元素赋给[1]变参或函数名带回,接着从[2]链接指针开始向后的所有元素均[3]前移一个位置,最后使线性表的长度[4]减1。

9.在线性表的顺序存储中,元素之间的逻辑关系是通过[1]相邻位置决定的;在线性表的链接存储中,元素之间的逻辑关系是通过[2]链接指针决定的。

10.一个单链表中删除*p结点时,应执行如下操作:

(1)q=p->next;

(2)p->data=p->next->data;

(3)p->next=[1]q->next或p->next->next;

(4)free(q);

11.若要在一个单链表中的*p结点之前插入一个*s结点时,可执行如下操作:

(1)s->next=[1]p->next;

(2)p->next=s;

(3)t=p->data;

(4)p->data=[2]s->data;

(5)s->data=[3]t;

12.对于线性表的顺序存储,需要预先分配好存储空间,若分配太多则容易造成存储空间的[1]浪费,若分配太少又容易在算法中造成[2]溢出,因此适应于数据量变化不大的情况;对于线性表的链接存储(假定采用动态结点),不需要[3]预先分配存储空间,存储器中的整个[4]动态存储区都可供使用,分配和回收结点都非常方便,能够有效地利用存储空间,在算法中不必考虑[5]溢出的发生,因此适应数据量变化较大的情况。

13.无论对于顺序存储还是链接存储的栈和队列来说,进行插入或删除运算的时间复杂性均相同,则为[1]O

(1)。

┏0020┓

**14.一个稀疏矩阵为┃3000┃,则对应的三元组线性表为

┃00-15┃((1,3,2),(2,1,3),(3,3,-1),(3,4,5))。

┗0000┛

15.对于一棵具有n个结点的树,则该树中所有结点的度之和为n-1。

16.在一棵二叉树中,度为0的结点的个数为n0,度为2的结点的个数为n2,则:

n0=n2+1。

17.在二叉树的顺序存储中,对于下标为5的结点,它的双亲结点的下标为[1]2,若它存在左孩子,则左孩子结点的下标为[2]10,若它存在右孩子,则右孩子结点的下标为[3]11。

18.假定一棵二叉树的广义表表示为A(B(,D),C(E(G),F)),则该树的深度为[1]4,度为0的结点数为[2]3,度为1的结点数为[3]2,度为2的结点数为[4]2;C结点是A结点的[5]右孩子,E结点是C结点的[6]左孩子。

19.在一棵二叉排序树中,按中序遍历得到的结点序列是一个有序序列。

20.由分别带权为3,9,6,2,5的共五个叶子结点构成一棵哈夫曼树,则带权路径长度为

55。

┏━━┳━━┳━━━┓

21.假定在二叉树的链接存储中,每个结点的结构为┃left┃data┃right┃,其中

┗━━┻━━┻━━━┛

data为值域,left和right分别为链接左、右孩子结点的指针域,请在下面中序遍历算法中画有横线的地方填写合适的语句。

voidinorder(bt);

{ifbt!

=nil{

(1)[1]inorder(bt->left);

(2)[2]printf(bt->data);

(3)[3]inorder(bt->right);}

}

22.在图G的邻接表表示中,每个顶点邻接表中所含的结点数,对于无向图来说等于该顶点的[1]度数,对于有向图来说等于该顶点的[2]出度数。

23.假定一个图具有n个顶点和e条边,则采用邻接矩阵表示的空间复杂性为[1]O(n2),采用邻接表表示的空间复杂性为[2]O(n+e)。

24.已知一个无向图的邻接矩阵如下所示,则从顶点A出发按深度优先搜索遍历得到的顶点序列为[1]ABCDFE,按广度优先搜索遍历得到的顶点序列为[2]ABCEFD。

ABCDEF

┏011010┓A

┃101011┃B

┃110100┃C

┃001001┃D

┃110001┃E

┗010110┛F

25.已知一个图如下所示,在该图的最小生成树中,各边的权值之和为20。

10

①②

15

5

28⑤

12

③3④

26.假定在有序表A[1..20]上进行二分查找,则比较一次查找成功的结点数为[1]1,比较两次查找成功的结点数为[2]2,比较三次查找成功的结点数为[3]4,比较四次查找成功结点数为[4]8,比较五次查找成功的结点数为[5]5,平均查找长度为[6]3.7。

27.在索引查找或分块查找中,首先查找[1]索引表,然后再查找相应的[2]子表或块,整个索引查找的平均查找长度等于查找索引表的平均查找长度与查找相应子表的平均查找长度之[3]和。

28.在散列存储中,装填因子α的值越大,存取元素时发生冲突的可能性就[1]越大,当α的值越小,存取元素时发生冲突的可能性就[2]越小。

29.给定线性表(18,25,63,50,42,32,90),用散列方式存储,若选用h(K)=K%9作为散列函数,则元素18的同义词元素共有[1]2个,元素25的同义词元素共有[2]0个,元素50的同义词元素共有[3]1个。

30.在对一组记录(54,38,96,23,15,72,60,45,83)进行直接选择排序时,第四次选择和交换后,未排序记录(即无序表)为(54,72,60,96,83)。

31.在对一组记录(54,38,96,23,15,72,60,45,38)进行冒泡排序时,第一趟需进行相邻记录交换的次数为[1]7,在整个冒泡排序过程中共需进行[2]5趟后才能完成。

32.在归并排序中,若待排序记录的个数为20,则共需要进行[1]5趟归并,在第三趟归并中,是把长度为[2]4的有序表归并为长度为[3]8的有序表。

33.在直接插入和直接选择排序中,若初始数据基本正序,则选用[1]直接插入排序,若初始数据基本反序,则选用[2]直接选择排序。

34.在堆排序、快速排序和归并排序中,若只从节省空间考虑,则应首先选取[1]堆排序方法,其次选取[2]快速排序方法,最后选取[3]归并排序方法;若只从排序结果的稳定性考虑,则应选取[4]归并排序;若只从平均情况下排序最快考虑,则应选取[5]快速排序方法;若只从最坏情况下排序最快并且要节省内存考虑,则应选取[6]堆排序方法。

填空题参考答案

1.[1]无[2]一[3]无[4]一

2.[1]前趋[2]一[3]后继[4]后继

3.[1]数据元素[2]二元关系

4.[1](i-1)*n+j-1

5.[1]一半

6.[1]O(n)[2]O

(1)

7.[1]n-1预先

8.[1]变参或函数名[2]第i+1个元素[3]前移[4]减1

9.[1]相邻位置[2]链接指针

10.[1]q->next或p->next->next

11.[1]p->next[2]s->data[3]t

12.[1]浪费[2]溢出[3]预先分配[4]动态存储区

[5]溢出

13.[1]O

(1)

14.[1]((1,3,2),(2,1,3),(3,3,-1),(3,4,5))

15.[1]n-1

16.[1]n2+1

17.[1]2[2]10[3]11

18.[1]4[2]3[3]2[4]2

[5]右[6]左

19.[1]中序

20.[1]55

21.[1]inorder(bt->left)

[2]printf(bt->data)

[3]inorder(bt->right)

22.[1]度数[2]出度数

23.[1]O(n2)[2]O(n+e)

24.[1]ABCDFE[2]ABCEFD

25.[1]20

26.[1]1[2]2[3]4[4]8

[5]5[6]3.7

27.[1]索引表[2]子表或块[3]和

28.[1]越大[2]越小

29.[1]2[2]0[3]1

30.

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

当前位置:首页 > 解决方案 > 学习计划

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

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