Alpha 图¶
深度优先遍历¶
给定图的邻接表表示和起始顶点索引,请编写程序,实现图的深度优先遍历函数DFS
,并输出遍历的顶点序列。
示例输出¶
Text Only | |
---|---|
1 |
|
题目¶
C | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
|
答案¶
C | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
标准答案(不太好)¶
C | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
有向图顶点的入度¶
给定图的邻接表和一个顶点编号,请编写程序完成函数GetIndegreeNum
,实现计算指定顶点的入度的功能。(注:顶点值编号从 0 开始,0~n-1)
示例输出¶
Text Only | |
---|---|
1 |
|
题目¶
C | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
|
标准答案¶
C | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
无向图邻接表存储结构删除指定的边¶
给定图的邻接表和两个顶点编号,编写程序,完成DelEdge
函数,实现从无向图的邻接表中删除指定的边的功能。(注:顶点值编号从0开始,0~n-1)
示例输出¶
Text Only | |
---|---|
1 |
|
题目¶
C | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
|
答案¶
creategraph()
函数有错误,没有定义变量j
。加上就行了
C | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
|
标准答案(不太好)¶
其实和咱那个也一样
C | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
|
普里姆算法¶
有一个带权无向图,图中的每条边都有一个权值。请编写程序,完成prim
函数,实现利用普里姆算法构造该图的最小生成树,并计算最小生成树的权值之和。
示例输出¶
Text Only | |
---|---|
1 |
|
题目¶
C | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
标准答案¶
C | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
|
最短路径(Floyd算法)¶
有一个带权有向图,图中的每条边都有一个权值。请编写程序,完成Floyd
函数,实现利用弗洛伊德算法求解该图的最短路径。
示例输出¶
Text Only | |
---|---|
1 |
|
题目¶
C | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
|
标准答案¶
C | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
计算无向图中各个顶点的度¶
请设计一个程序,实现无向图的度计算功能。给定一个无向图,使用邻接表表示,计算图中每个顶点的度。
示例¶
要求
Text Only | |
---|---|
1 2 |
|
输入
Text Only | |
---|---|
1 2 3 4 |
|
输出
Text Only | |
---|---|
1 |
|
题目¶
C | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
|
标准答案¶
还算条理清晰
C | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
|
对
Create_ALGraph
函数中最后一部分的讲解(以第一大块为例)
- 使用
malloc
函数分配了内存以存储一个新的ArcNode
类型的边结点。- 将这个边结点的
adjvex
属性设置为目标顶点j
的值,表示这条边指向顶点j
。- 将这个边结点的
nextarc
属性指向顶点i
原本的第一条边,以保证新添加的边在链表中排在原有的边之前。- 将顶点
i
的firstarc
指针指向新添加的边结点,完成了在邻接表中添加边的过程。