上数据结构期末图习题答案.docx

上传人:b****4 文档编号:12344124 上传时间:2023-04-18 格式:DOCX 页数:14 大小:136.16KB
下载 相关 举报
上数据结构期末图习题答案.docx_第1页
第1页 / 共14页
上数据结构期末图习题答案.docx_第2页
第2页 / 共14页
上数据结构期末图习题答案.docx_第3页
第3页 / 共14页
上数据结构期末图习题答案.docx_第4页
第4页 / 共14页
上数据结构期末图习题答案.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

上数据结构期末图习题答案.docx

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

上数据结构期末图习题答案.docx

上数据结构期末图习题答案

2014上数据结构期末复习大纲

一、期中前以期中考试试卷复习,算法要真正理解

二、二叉树、图、排序算法将是考试重点(占60%左右)

三、要掌握的算法

1.二叉树的链表表示

2.建立二义树的链表存储结构

3.先序、中序、后序遍历二叉树(递归算法)

4.遍历算法的应用(如求二叉树的结点数)

5.建立huffman树和huffman编码

6.图的邻接矩阵表示和邻接链表表示

7.图的深度优先遍历和广度优先遍历算法

8.有向图求最短路径(迪杰斯特拉算法)

9.直接插入排序算法

10.shell排序(排序过程)12•堆排序(排序过程)

练习题

A-14

B.28

C・56

112

2.有8个结点的无向连通图最少有C

条边。

A.5

B.6

C.7

3.有8个结点的有向完全图最多有C

条边。

A.14

B・28

C・56

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

D.

D.8

D.

112

4.用邻接表表示图进行广度优先遍历时,通常是采用—B算法的。

来实现

A.栈

B•队列

C.树

D.图

5.用邻接表表示图进行深度优先遍历时,通常是采用—

来实现

算法的。

A.栈

B•队列

C•树D•图

0111

1001

1000

1100

1011

0001

1100

I0

00

10

I1

01

10

01

1

1

0

0

0

1

0

A.0243156

B.0136542

C.0423165

6.已知图的邻接矩阵,

根据算法思想,则从顶点0出发按深度优先遍历

的结点序列是*(C)

 

7.已知图的邻接矩阵同上题,根据算法,则从顶点0出发,按深度优先遍

历的结点序列是(D)

A.0243156B.0135642C.0423165D.

0134256

8.已知图的邻接矩阵同上题6,根据算法,则从顶点0出发,按广度优先遍历的结点序列是(B)

A.0243651B.0136425C.0423156D.

0134256

9.已知图的邻接矩阵同上题6,根据算法,则从顶点0出发,按广度优先

遍历的结点序列是(C)

A.0243165B.0135642C.0123465D.0123456

10.从未排序序列中依次取出元素与已排序序列中的元素进行比较,将其放入已排序序列的正确位置上的方法,这种排序方法称为(C)。

A.归并排序B.冒泡排序C.插入排序D.选择

排序

11.从未排序序列中挑选元素,并将其依次放入已排序序列(初始时为空)的一端的方法,称为(D)o

A.归并排序B.冒泡排序C.插入排序D.选择

排序

12.对n个不同的排圧码进行冒泡排序,在元素无序的情况下比较的次数

最多为(D)o

A・n+1B.nC.n~l

D.n(n~l)/2

13.若一组记录的排序码为(46,79,56,38,40,84),则利用快速排

序的方法,以第一个记录为基准得到的一次划分结果为(C)O

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

14.

堆是一种(

B)排序。

A.

插入

B.选择

C.交换D.归并

15.

若一组记录

的排序码为(46,

79,56,38,40,84),则利用堆排序

的方法建立的初始堆为(B)o

 

A.

79,

46,

56,

38,

40,

84

B.84,

79,

56,

38,

40,

46

C.

84,

79,

56,

46,

40,

38

D.84,

56,

79,

40,

46,

38

二、

填f

空题

(每空1分,

共20分)

1.图有邻接矩阵、邻接表等存储结构,遍历图有深度优先遍历、广度优先遍历等方法。

2.有向图G用邻接表矩阵存储,其第i行的所有元素之和等于顶点i的出度

3.n个顶点e条边的图,若采用邻接矩阵存储,则空间复杂度为

0(rf)o

4.n个顶点e条边的图,若采用邻接表存储,则空间复杂度为

0(n+e)o

5.设有一稀疏图G,则G采用邻接表存储较省空间。

6..设有一稠密图G,则G采用邻接矩阵存储较省空间。

7.图的逆邻接表存储结构只适用于有向图。

8.图的深度优先遍历序列不是惟一的。

个顶点e条边的图采用邻接矩阵存储,深度优先遍历算法的时间复杂度为

0(();若采用邻接表存储时,该算法的时间复杂度为0(n+e)。

10.n个顶点e条边的图采用邻接矩阵存储,广度优先遍历算法的时间复

杂度为0(();若采用邻接表存储,该算法的时间复杂度为

0(n+e)

11.用Dijkstra算法求某一顶点到其余各顶点间的最短路径是按

路径长度递增的次序来得到最短路径的。

三、简答题.

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

(1)

每个顶点的入/出度;

(2)邻接矩阵;

⑶邻接表;

(4)逆邻接表。

2.已知一个无向图的邻接表如图2所示,要求:

(1)画出该无向图;

(2)根据邻接表,分别写出用DFS(深度优先搜索)和BFS(广度优先

搜索)算法从顶点V0开始遍历该图后所得到的遍历序列。

冷1C丙1”1人(7-fcfc主右皿

(1)

 

(2)根据该无向图的邻接表表示,从顶点V0开始的深度优先遍历序列为:

V0、V2、V3、VI、V4、V6、V5。

广度优先遍历序列为VO、V2、V5、V6、VI、

V3、V4o

3.、图3所示为一个有向网图及其带权邻接矩阵,要求对有向图采用

Dijkstra算法,求从V0到其余各顶点的最短路径,写出执行算法过程中

各步的状态。

0ooiooo30

100

OOQ58OO

(b)带权邻接

3、求解过程如下表所示。

线占

从V0到各终点的D值和最短路径的求解过程

i=l

i二2

i二3

i=4

i=5

VI

OO

OO

OO

OO

OO

V2

10

(v0,v

2)

V3

60

50

oo

(vO,v2,

(vO,v4,v3)

v3)

V4

30

30

(vO,v4

(v0,v

4)

V5

100

100

90

60

(vO,v4,v5)

(vO,v4,v3,v5

(v0,v

(vO,v5)

5)

Vj

V4

V3

V5

V2

S

{vO,v2,v3,v

{vO,v2,v3,v4

{vO,v

{vO,v2,

4}

v5}

2}

v4}

4.设待排序的关键字序列为{12,2,16,30,28,10,16*,20,6,18},试分别写出使用以下排序方法,每趟排序结束后关键字序列的状态。

(1).直接插入排序

(2)希尔排序(增量选取5,3,1)

(3)快速排序

(1)直接插入排序

[2

12]

16

30

28

10

16*

20

6

18

[2

12

16]

30

28

10

16*

20

6

18

[2

12

16

30]

28

10

16*

20

6

18

[2

12

16

28

30]

10

16*

20

6

18

[2

10

12

16

28

30]

16*

20

6

18

[2

10

12

16

16*

28

30]

20

6

18

[2

10

12

16

16*

20

28

30]

6

18

[2

6

10

12

16

16*

20

28

30]

18

[2

6

10

12

1616*

18

20

28

30]

(2)

希尔排序(增量选取5,

3,1)

10

2

16

6

18

12

16*

20

30

28

(增量选取5)

6

2

12

10

18

16

16*

20

30

28

(增量选取3)

2

6

10

12

16

16*

18

2028

30(增量选取

1)

(3)快速排序

枢轴

12

[6210]12[283016*201618]

28

2

6

10

12

[18

16

16*

20]

28

[30]

18

2

6

10

12

[16*

16]

18

[20]

28

30

16*

2

6

10

12

16*

[16]

18

20

28

30

6

⑵6

[10]12[2830

16*20

1618]

5.设待排序的关键字序列为{30,60,8,40,70,12,10},试使用堆排序,

(1)画出将无序数据建成初始堆的图,

(2)画出将第二个数排定顺序时的堆的图。

(1)初始堆序列为7060124030810

(2)

四、程序填空题

1、根据有向图的邻接矩阵求出序号为numb的顶点的度数(邻接矩阵可参考简答题第三题),

请填写算法中下划线的空白处。

intdegree2(Graph&ga,intnumb)

{inti,j,d=0;

半查找法查找关键字(key)为k的记录。

如果查找失败,,则输出“失败”,函数返回值为0:

否则输出“成功”,函数返回值为该记录的序号值。

Intbinary_search(struetrecordtyper[],intn,keytypek)

/*r[l..n]为N个记录的递增有序表,k为关键字*/

{intmid,low=l,hig=n;

while(1ow<=hig)

{mid=(low+hig)/2;

if(k

(1)hig=midT;

elseif(k==r[mid].key){printf(“成功”);

(2)return

mid:

}

else(3)low=mid+l;}

if(low>high)printf("失败”);

return(0);

}

3.建立huffman树

voidHuffmanCoding(HuffmanTree&HT,int*w,intn)eight二*w;

(*p).parent二0;

(*p).lchild二0;

(*p).rchild=0;

for(:

i<=m;++i,++p)

(*p).parent二0;

for(i=n+l:

i<=m;++i)arent二二I;

ht[s2].parent=I;

ht[i].lchild二si;

ht[i].lchild二s2;

ht[i].weight二ht[si].weight+ht[s2].weight;

}

}

六.编程题

1•期中考试二个程序题(循环队列入队出队、用栈处理进制转换(P48算法)

2.以二叉链表作为二叉树的存储结构,编写以下算法:

(看实习题)

(1)写出先序、中序、后序遍历二叉树的递归算法;

(1)统计二叉树的结点个数。

3.带头结点的单链表的插入和删除算法。

(书上P30算法,)

答.1.期中循环队列入队出队

ttdefineMAX20

typedefstruet{

intqu[MAX];

intrear,length;

}Queue;

IntEnQueue(Queue&q,inte)

{if(二二MAX)returnT;

=+l)%max;

二+1;

□=e;

return1;

}

IntDeQueue(Queue&q,int&e)

{intfront;

if(==0)return-1;

front:

=+l+%max;

e=[front];

return1;

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

当前位置:首页 > 工程科技 > 城乡园林规划

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

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