R6-4 求某一个顶点的最远邻接点 在网中,一个顶点可能会有若干个邻接点。有的邻接点离该顶点距离近,有的邻接点与该顶点距离远,本题要求实现一个函数,输出某个顶点的最远邻接点的值以及与最远邻接点相关联的边上的权值。用c语言编写代码
时间: 2024-03-25 08:40:16 浏览: 173
以下是使用邻接矩阵表示图的 C 语言代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#define MAX_VERTICES 100 // 最大顶点数
int graph[MAX_VERTICES][MAX_VERTICES]; // 邻接矩阵
int num_vertices; // 顶点数
// 找到某个顶点的最远邻接点
void farthest_neighbor(int vertex, int *farthest_vertex, int *max_weight) {
int i;
*max_weight = -1; // 初始化最大权值为-1
for (i = 0; i < num_vertices; i++) {
if (graph[vertex][i] > 0 && graph[vertex][i] > *max_weight) {
*max_weight = graph[vertex][i];
*farthest_vertex = i;
}
}
}
int main() {
int i, j;
int farthest_vertex, max_weight;
// 读入图的顶点数和邻接矩阵
scanf("%d", &num_vertices);
for (i = 0; i < num_vertices; i++) {
for (j = 0; j < num_vertices; j++) {
scanf("%d", &graph[i][j]);
}
}
// 找到顶点0的最远邻接点
farthest_neighbor(0, &farthest_vertex, &max_weight);
printf("最远邻接点为:%d,与最远邻接点相关联的边上的权值为:%d\n", farthest_vertex, max_weight);
return 0;
}
```
代码思路:首先读入图的顶点数和邻接矩阵,然后定义 `farthest_neighbor` 函数来找到某个顶点的最远邻接点。函数中遍历该顶点的所有邻接点,找到权值最大的邻接点,即为最远邻接点。最后在 `main` 函数中调用 `farthest_neighbor` 函数,找到顶点0的最远邻接点,并输出结果。
阅读全文