数据结构复习标准答案.docx

上传人:b****7 文档编号:25620071 上传时间:2023-06-10 格式:DOCX 页数:31 大小:172.01KB
下载 相关 举报
数据结构复习标准答案.docx_第1页
第1页 / 共31页
数据结构复习标准答案.docx_第2页
第2页 / 共31页
数据结构复习标准答案.docx_第3页
第3页 / 共31页
数据结构复习标准答案.docx_第4页
第4页 / 共31页
数据结构复习标准答案.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

数据结构复习标准答案.docx

《数据结构复习标准答案.docx》由会员分享,可在线阅读,更多相关《数据结构复习标准答案.docx(31页珍藏版)》请在冰豆网上搜索。

数据结构复习标准答案.docx

数据结构复习标准答案

数据结构复习标准答案

 

 

————————————————————————————————作者:

————————————————————————————————日期:

 

数据结构复习答案

一、选择填空

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

(   )

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

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

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

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

2.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用(   )存储方式最节省时间。

√A)顺序表     B)双链表       C)带头结点的双循环链表    D)单循环链表

3.链表不具有的特点是(   )。

A)插入、删除不需要移动元素 √B)可随机访问任一元素  

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

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

  A)O(0)     B)O

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

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

A)O(i)     B)O

(1)     √C)O(n)      D)O(i-1)

6.对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是(   )

A)head==NULL B)head→next==NULL   √C)head→next==head  D)head!

=NULL

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

(   )。

  A)p->next=s;s->next=p->next; √B)s->next=p->next;p->next=s;

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

8.设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为(   )。

√A)p->next=p->next->nextB)p=p->next

C)p=p->next->nextD)p->next=p

9.在双向链表指针p的结点前插入一个指针q的结点操作是(   )。

A) p->prior=q;q->next=p;p->prior->next=q;q->prior=q;

  B) p->prior=q;p->prior->next=q;q->next=p;q->prior=p->prior;

  √C) q->next=p;q->prior=p->prior;p->prior->next=q;p->prior=q;

D) q->prior=p->prior;q->next=q;p->prior=q;p->prior=q;

10.在双向链表存储结构中,删除p所指的结点时须修改指针(   )。

  √A)(p->prior)->next=p->next   (p->next)->prior=p->prior;

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

  C)(p->next)->prior=p          p->next=(p->next)->next

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

11.(   )又称为FIFO表;(   )又称为FILO表。

√A)队列B)散列表√C)栈D)哈希表

12.对于栈操作数据的原则是(  )。

A)先进先出   √B)后进先出   C)后进后出    D)不分顺序

13.用不带头结点的单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结点,则在进行删除操作时(    )。

√A)仅修改队头指针         B)仅修改队尾指针  

C)队头、队尾指针都要修改 D)队头、队尾指针都可能要修改

14.假设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素个数为(   )。

  √A)(rear-front+m)%m    B)rear-front+1     C)(front-rear+m)%m     D)(rear-front)%m

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

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

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

16.设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5和e6依次通过栈S,一个元素出栈后即进队列Q,若6个元素出队的序列是e2,e4,e3,e6,e5,e1则栈S的容量至少应该是(   )。

  A)6         B)4         √C)3         D)2

17.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为(   )。

  A)12     √B)33     C)18     D)40

18.设A是n*n的对称矩阵,将A的对角线及对角线上方的元素以列为主的次序存放在一维数组B[1))n(n+1)/2]中,对上述任一元素aij(1≤i,j≤n,且i≤j)在B中的位置为(   )。

A)i(i-l)/2+j    B)j(j-l)/2+i      √C)j(j-l)/2+i-1   D)i(i-l)/2+j-1

19.由3个结点可以构造出多少种不同的二叉树?

(   )

  A)2      B)3        C)4        √D)5

20.二叉树中第i(i≥1)层上的结点数最多有(   )个。

A)2iB)2i√C)2i-1D)2i-1

21.在有n个叶子结点的哈夫曼树中,其结点总数为(   )。

A)不确定B)2nC)2n+1√D)2n-1

22.一棵二叉树高度为h,所有结点的度或为0、或为2,则这棵二叉树最少有(   )结点。

A)2h    √B)2h-1       C)2h+1        D)h+1

23.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是(   )。

A)9           √B)11        C)15      D)不确定

24.设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1则T中的叶子数为(   )。

A)5           B)6         C)7          √D)8

25.树的后根遍历序列等同于该树对应的二叉树的(   )。

A)先序序列                  √B)中序序列           C)后序序列D)层序序列

26.在下列存储形式中,哪一个不是树的存储形式?

(   )

A)双亲表示法 B)孩子链表表示法C)孩子兄弟表示法√D)顺序存储表示法

27.在二叉树结点的先序序列,中序序列和后序序列中,所有叶子结点的先后顺序(   )。

A)都不相同  √B)完全相同  

C)先序和中序相同,而与后序不同 D)中序和后序相同,而与先序不同

28.下列哪一种图的邻接矩阵是对称矩阵?

(   )

  A)有向图           √B)无向图          C)AOV网         D)AOE网

29.在一个无向图中,所有顶点的度数之和等于所有边数(  2 )倍,在一个有向图中,所有顶点的入度之和等于所有顶点出度之和的(  1 )倍。

  A)1/2         √B)2            √C)1              D)4

30.一个有n个顶点的无向图最多有(   )条边。

由n个顶点组成的有向图,最多可以有(   )条边。

A)n*nB)2n√C)n(n-1)√D)n(n-1)/2

31.下列说法不正确的是(   )。

A)图的遍历是从给定的源点出发每一个顶点仅被访问一次  

B)遍历的基本算法有两种:

深度遍历和广度遍历  

√C)图的深度遍历不适用于有向图  

D)图的深度遍历是一个递归过程

32.下面哪一方法可以判断出一个有向图是否有环(回路)(   )。

  A)深度优先遍历  √B)拓扑排序  C)求最短路径 D)求关键路径 

33.下列算法中,(   )算法用来求图中每对顶点之间的最短路径。

A)Dijkstra√B)FloyedC)PrimD)Kruskal

34.关键路径是事件结点网络中(   )。

  √A)从源点到汇点的最长路径       B)从源点到汇点的最短路径

  C)最长回路                     D)最短回路

35.若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为(   )。

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

36.下面关于二分查找的叙述正确的是 (   )。

A)表必须有序,表可以顺序方式存储,也可以链表方式存储 

B)表必须有序,而且只能从小到大排列 

C表必须有序且表中数据必须是整型,实型或字符型 

√D)表必须有序,且表只能以顺序方式存储

37.折半查找的时间复杂性为(  )。

  A)O(n2)    B)O(n)    C)O(nlogn)    √D) O(logn)

38.当采用分快查找时,数据的组织方式为 (   )。

  A)数据分成若干块,每块内数据有序

  √B)数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块

  C)数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块

  D)数据分成若干块,每块(除最后一块外)中数据个数需相同 

39.下面关于B和B+树的叙述中,不正确的是(   )。

 

A) B-树和B+树都是平衡的多叉树 

B) B-树和B+树都可用于文件的索引结构

√C) B-树和B+树都能有效地支持顺序检索

D) B-树和B+树都能有效地支持随机检索

40.下面关于哈希(Hash,杂凑)查找的说法正确的是(   )。

  A)哈希函数构造的越复杂越好,因为这样随机性好,冲突小

  B)除留余数法是所有哈希函数中最好的

  √C)不存在特别好与坏的哈希函数,要视情况而定

  D)若需在哈希表中删去一个元素,不管用何种方法解决冲突都只要简单的将该元素删去即可

41.下面给出的四种排序法中(   )排序法是不稳定性排序法。

  A)插入          B)冒泡             C)二路归并       √D)堆

42.稳定的排序方法是(   )。

A)直接插入排序和快速排序   √B)折半插入排序和起泡排序  

C)简单选择排序和四路归并排序  D)树形选择排序和shell排序

43.有一组数据(15,9,7,8,20,-1,7,4)用快速排序的划分方法进行一趟划分后数据的排序为(   )(按递增序)。

  √A)下面的B,C,D都不对。

           B)9,7,8,4,-1,7,15,20

  C)20,15,8,9,7,-1,4,7    D)9,4,7,8,7,-1,15,20

44.设有一个文件有200个记录,按分块查找法查找记录,如分成10块,每块20个记录,用二分查找法查索引表,用顺序查找法查块内记录,则平均查找长度为(   )。

A)8)4B)10)5C)13)4√D)16

45.快速排序在最坏情况下的时间复杂性为(   )。

A)O(nlog2n)√B)O(n2)C)O(n)D)O(nlogn)

二、填空

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

2.线性表L=(a1,a2,…,an)用数组表示,假定插入、删除表中任一元素的概率相同,则插入、删除一个元素平均需要移动元素的个数是n/2和(n-1)/2。

3.对于一个具有n个结点的单链表,在已知的结点*p后插入一个新结点的时间复杂度为O

(1),在给定值为x的结点后插入一个新结点的时间复杂度为O(n)。

4.顺序存储结构是通过元素在计算机内“物理位置相邻”表示元素之间的逻辑关系的,链式存储结构是通过指针表示元素之间的逻辑关系的。

5.带头结点的双循环链表L为空表的条件是:

p-next=head。

6.当两个栈共享一存储区时,栈利用一维数组stack(1,n)表示,两栈顶指针为top1与top2,则当栈1空时,top1为1,栈2空时,top2为n,栈满时为top1+top2==n。

7.顺序栈S用data[1))n]存储数据,栈顶指针是top,则值为x的元素入栈的操作是*S)top++=x。

8.已知链队列Q的头尾指针分别是f和r,则将值x入队的操作序列是p->data=e;p->next=NULL;Q)r->next=p;Q)r=p;。

9.稀疏矩阵的存储策略是只存储非零元素。

10.稀疏矩阵的存储方法主要有两个:

一个是三元组,另一个是十字链表示法。

11.二叉树由根,左子树、右子树三个基本单元组成。

12.一棵有n个结点的满二叉树有n1=0个度为1的结点、有(n-1)/2,(n1+2n2)个分支(非终端)结点和(n=n0+n1+n2,n0=n2+1),(n+1)/2个叶子,该满二叉树的深度为log2(n+1)。

13.设F是由T1,T2,T3三棵树组成的森林,与F对应的二叉树为B,已知T1,T2,T3的结点数分别为n1,n2和n3则二叉树B的左子树中有n1-1个结点,右子树中有n2+n3个结点。

14.线索二叉树的左线索指向其前驱右线索指向其后继。

15.设一棵Huffman树有6个叶结点,权值分别为3、4、7、14、15、20,则根节点的权值是63。

当初始记录序列按关键字有序或基本有序时,快速排序算法的时间复杂性为O(n2)。

16.在有n个结点的二叉链表中,空链域的个数为n+1。

17.设一棵完全二叉树具有1000个结点,则此完全二叉树有500个叶子结点,有499个度为2的结点,有1个度为1的结点。

18.若用n表示图中顶点数目,则有n*(n-1)/2条边的无向图成为完全图。

19.设无向图G有n个顶点和e条边,每个顶点Vi的度为di(1<=i<=n〉,则e=

20.在有n个顶点的有向图中,若要使任意两点间可以互相到达,则至少需要n*(n-1)条弧。

  

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

22.顺序查找n个元素的顺序表,若查找成功,则比较关键字的次数最多为n次;当使用监视哨时,若查找失败,则比较关键字的次数为n+1。

23.在顺序表(8,11,15,19,25,26,30,33,42,48,50)中,用二分(折半)法查找关键码值20,需做的关键码比较次数为4。

24.高度为4的3阶b-树中,最多有2个关键字。

25.在一棵m阶B-树中,若在某结点中插入一个新关键字而引起该结点分裂,则此结点中原有的关键字的个数是m-1;若在某结点中删除一个关键字而导致结点合并,则该结点中原有的关键字的个数是「m/2」-1。

26.对于长度为255的表,采用分块查找,每块的最佳长度为16。

27.已知二叉排序树的左右子树均不为空,则左子树上所有结点的值均小于它的根结点值,右子树上所有结点的值均大于它的根结点的值。

28.动态查找表和静态查找表的重要区别在于前者包含有插入和删除运算,而后者不包含这两种运算。

29.为了能有效地应用HASH查找技术,必须解决的两个问题是设计一个好的哈希函数和选择一个处理冲突的方法。

30.若不考虑基数排序,则在排序过程中,主要进行的两种基本操作是关键字的比较和记录的移动。

31.属于不稳定排序的有希尔、快速、选择、堆排序。

32.对n个记录的表r[1))n]进行简单选择排序,所需进行的关键字间的比较次数为n*(n+1)/2。

33.快速排序算法的时间复杂度为O(n2)。

i

j

v

1

3

18

2

1

3

3

4

24

5

3

66

三、应用题

1.试画出下列稀疏矩阵的三元组表示。

稀疏矩阵

2.二叉树有哪几种基本形态?

画图说明之。

解答:

5种。

NULL

 

3.

写出下列二叉树的前序,中序,后序遍历序列及对应的森林。

解答:

前序:

-+a*bc/de

中序:

a+b*c-d/e

后序:

abc*+de/-

4.设一棵二叉树的先序、中序遍历序列分别为

  先序遍历序列:

ABDFCEGH 中序遍历序列:

BFDAGEHC

  

(1)画出这棵二叉树。

  

(2)画出这棵二叉树的后序线索树。

(后序:

FDBGHECA)

(3)将这棵二叉树转换成对应的树(或森林)。

5.已知二叉树的中序和后序遍历序列如下,试构造该二叉树。

         中序:

ACBDHGEF

         后序:

ABCDEFGH

 

6.试将森林F={T1,T2,T3,T4}转换为一棵二叉树。

F

 

D

G

E

H

K

J

 

C

B

I

A

 

L

M

 

N

O

 

P

Q

T1T2T3T4

解答:

 

7.画出下列二叉树对应的先序、中序、后序线索二叉树存储结构。

8.已知叶子结点值2,3,5,6,9,11,构造哈夫曼树,计算其带权路径长度。

10

 

5

5

2

3

6

9

 

11

21

15

36

解答:

L=4*2+3+3*2=17

 

9.设一棵树T中边的集合为{(A,B),(A,C),(A,D),(B,E),(C,F),(C,G)},要求用孩子兄弟表示法(二叉链表)表示出该树的存储结构并将该树转化成对应的二叉树。

解答:

 

10.已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7},  E={,,,,,,,,},G的拓扑序列是( )。

 

11.

2

5

3

2

8

1

3

5

5

3

9

5

有7个顶点(v1,v2,v3,v4,v5,v6,v7)

的有向图的邻接矩阵如右图。

请回答相关问题:

(1)

画出该有向图。

解答:

 

(2)写出从v1出发的深度优先遍历和广度优先遍历序列。

深度优先遍历:

V1V2V6V7V3V4V5

广度优先遍历:

V1V2V3V4V6V5V7

12.已知如图所示的有向图,请给出该图的:

(1)

顶点

1

2

3

4

5

6

入度

3

2

1

1

2

2

出度

0

2

2

3

1

3

每个顶点的入/出度;

(2)邻接矩阵;

(3)邻接表;

(4)

1

1

1

1

1

1

1

1

1

1

1

邻接矩阵

逆邻接表。

0

1

1

2

->

0

->

3

2

3

->

1

->

5

3

4

->

2

->

5

->

6

4

5

->

0

5

6

->

0

->

1

->

4

邻接表

0

1

->

1

->

4

->

5

1

2

->

2

->

5

2

3

->

3

3

4

->

1

4

5

3

->

5

5

6

->

2

->

3

逆邻接表

 

13.下面的邻接表表示一个给定的无向图

  

(1)给出从顶点v1开始,对图G用深度优先搜索法进行遍历时的顶点序列;

(2)给出从顶点v1开始,对图G用广度优先搜索法进行遍历时的顶点序列。

解答:

深度优先:

v1v2v4v6v5v3

广度优先:

v1v2v3v4v5v6

14.

设无向图G(所下图所示),要求给出该图的深度优先和广度优先遍历的序列,找出下面网络的最小生成树。

解答:

深度优先:

ABDFCEG广度优先:

ABDCEFG

15.分别说明Huffman算法、Dijkstra算法、Prim算法、Kruskal算法的功能。

解答:

Huffman算法:

最优二叉树,树的带权路径最短。

Dijkstra算法:

求单源最短路径

Prim算法:

求最小生成树

Kruskal算法:

求最小生成树

16.

已知图G如图所示。

(1)画出图G的邻接表;

(2)画出从顶点1出发

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

当前位置:首页 > 成人教育 > 自考

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

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