要求用邻接矩阵存储方式创建一个带5个顶点的无向图,并输出 c语言
时间: 2024-12-23 22:22:10 浏览: 3
在C语言中,我们可以使用二维数组来表示一个无向图的邻接矩阵。假设我们有5个顶点,编号从0到4,那么邻接矩阵会是一个5x5的布尔型数组,其中元素值为true表示两个顶点之间有边,false则表示没有边。由于这里是无向图,所以邻接矩阵是对称的。
以下是一个简单的例子:
```c
#include <stdio.h>
#define V 5 // 定义顶点数
// 邻接矩阵的结构体
typedef struct {
bool adj[V][V]; // 使用布尔型数组存储邻接矩阵
} Graph;
// 初始化邻接矩阵为全零
void initializeGraph(Graph *graph) {
for (int i = 0; i < V; ++i)
for (int j = 0; j < V; ++j)
graph->adj[i][j] = false;
}
// 添加边到矩阵
void addEdge(Graph *graph, int src, int dest) {
graph->adj[src][dest] = true; // 无向图,添加src到dest的边
graph->adj[dest][src] = true; // 同样添加dest到src的边
}
// 打印邻接矩阵
void printMatrix(Graph *graph) {
printf("邻接矩阵:\n");
for (int i = 0; i < V; ++i) {
for (int j = 0; j < V; ++j) {
if (graph->adj[i][j])
printf("1 ");
else
printf("0 ");
}
printf("\n");
}
}
int main() {
Graph g;
initializeGraph(&g);
// 添加边示例
addEdge(&g, 0, 1); // 边连接顶点0和1
addEdge(&g, 1, 2); // 边连接顶点1和2
addEdge(&g, 3, 4); // 边连接顶点3和4
printMatrix(&g);
return 0;
}
```
在这个例子中,你可以根据需要调整`addEdge()`函数中的顶点索引来代表实际的图结构。
阅读全文