编写c语言程序,实现对有向图的邻接矩阵存储,并输出存储的图
时间: 2024-04-18 09:26:24 浏览: 69
当然可以!以下是一个简单的示例程序,于实现有向图的邻接矩阵存储,并输出存储的图:
```c
#include <stdio.h>
#define_VERTICES 100
int adjacencyMatrix[MAX_VERTICES][MAX_VERTICES];
void initGraph(int numVertices) {
int i, j;
for (i = 0; i < numVertices; i++) {
for (j = 0; j < numVertices; j++) {
adjacencyMatrix[i][j] = 0;
}
}
}
void addEdge(int startVertex, int endVertex) {
adjacencyMatrix[startVertex][endVertex] = 1;
}
void printGraph(int numVertices) {
int i, j;
for (i = 0; i < numVertices; i++) {
for (j = 0; j < numVertices; j++) {
printf("%d ", adjacencyMatrix[i][j]);
}
printf("\n");
}
}
int main() {
int numVertices, numEdges;
int startVertex, endVertex;
printf("Enter the number of vertices: ");
scanf("%d", &numVertices);
initGraph(numVertices);
printf("Enter the number of edges: ");
scanf("%d", &numEdges);
for (int i = 0; i < numEdges; i++) {
printf("Enter edge %d (startVertex endVertex): ", i + 1);
scanf("%d %d", &startVertex, &endVertex);
addEdge(startVertex, endVertex);
}
printf("\nAdjacency Matrix:\n");
printGraph(numVertices);
return 0;
}
```
在此示例中,我们首先使用 `initGraph` 函数初始化邻接矩阵,将所有元素置为零。然后,使用 `addEdge` 函数向图中添加边,将对应的邻接矩阵元素设为 1。最后,使用 `printGraph` 函数输出邻接矩阵。
请注意,在此示例中,默认顶点编号从 0 开始。您可以根据需要进行修改。
希望这可以帮助到您!如果您有任何其他问题,请随时提问。
阅读全文