用c语言写一个图的创建,邻接矩阵或者邻接表都可以
时间: 2024-01-22 16:18:37 浏览: 69
数据结构学习--图的邻接矩阵和邻接表存储
好的,下面是一个用邻接矩阵创建图的 C 语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_VERTICES 100
int adj[MAX_VERTICES][MAX_VERTICES];
int n; // 图中节点的个数
void init_graph() {
int i, j;
n = 0;
for (i = 0; i < MAX_VERTICES; i++) {
for (j = 0; j < MAX_VERTICES; j++) {
adj[i][j] = 0;
}
}
}
void insert_vertex() {
if (n >= MAX_VERTICES) {
printf("图中节点个数已达到最大值!\n");
return;
}
n++;
}
void insert_edge(int u, int v) {
if (u >= n || v >= n) {
printf("节点下标越界!\n");
return;
}
adj[u][v] = 1;
adj[v][u] = 1;
}
void print_graph() {
int i, j;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%d ", adj[i][j]);
}
printf("\n");
}
}
int main() {
init_graph();
insert_vertex();
insert_vertex();
insert_vertex();
insert_vertex();
insert_edge(0, 1);
insert_edge(0, 2);
insert_edge(1, 3);
insert_edge(2, 3);
print_graph();
return 0;
}
```
这个程序创建了一个简单的无向图,其中有 4 个节点,分别为 0、1、2、3。通过调用 `insert_vertex()` 函数向图中插入节点,通过 `insert_edge()` 函数向图中插入边。最后通过 `print_graph()` 函数打印邻接矩阵表示的图。
阅读全文