无向图邻接矩阵的建立C语言
时间: 2023-08-05 20:07:34 浏览: 122
邻接矩阵是一种表示图形的方法,它使用矩阵来表示节点和它们之间的连接。在无向图中,连接是双向的,因此它们在邻接矩阵中被表示为对称的。下面是使用C语言实现无向图邻接矩阵的示例代码:
```
#define MAXVEX 100 // 最大节点数
#define INF 65535 // 无穷大
typedef struct {
int vexs[MAXVEX]; // 节点集合
int arcs[MAXVEX][MAXVEX]; // 邻接矩阵
int num_vexs, num_edges; // 节点数和边数
} Graph;
// 创建图,输入节点数和边数
void createGraph(Graph *G) {
int i, j, k, w;
printf("输入节点数和边数:\n");
scanf("%d %d", &G->num_vexs, &G->num_edges);
for (i = 0; i < G->num_vexs; i++) {
printf("输入第%d个节点的值:", i + 1);
scanf("%d", &G->vexs[i]);
}
for (i = 0; i < G->num_vexs; i++) {
for (j = 0; j < G->num_vexs; j++) {
G->arcs[i][j] = INF; // 初始化邻接矩阵
}
}
for (k = 0; k < G->num_edges; k++) {
printf("输入边(vi, vj)的下标i, j和权值w:\n");
scanf("%d %d %d", &i, &j, &w);
G->arcs[i][j] = w; // 存储边信息
G->arcs[j][i] = w;
}
}
int main() {
Graph G;
createGraph(&G);
return 0;
}
```
这段代码首先定义了一个结构体`Graph`,其中包含节点集合`vexs`、邻接矩阵`arcs`、节点数`num_vexs`和边数`num_edges`。在`createGraph`函数中,用户输入节点数和边数,并依次输入每个节点的值。然后,将邻接矩阵初始化为无穷大,表示节点之间没有连接。最后,用户输入每条边的信息,包括起点、终点和权值,将边存储在邻接矩阵中。
阅读全文
相关推荐
![py](https://img-home.csdnimg.cn/images/20250102104920.png)
![cpp](https://img-home.csdnimg.cn/images/20250102104920.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pptx](https://img-home.csdnimg.cn/images/20241231044947.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)