C语言实现图的邻接矩阵表示

需积分: 9 0 下载量 43 浏览量 更新于2024-08-05 1 收藏 3KB TXT 举报
"实验6图.txt" 这篇代码是关于图的表示和操作的,主要涉及图的邻接矩阵表示,包括无向图和有向图。实验内容包括创建无向图、无向网以及有向图,并输出它们的邻接矩阵。 首先,代码中定义了一些常量和数据类型。`#define MAX 10` 定义了邻接矩阵的最大维数为10,`typedef int VexType` 将整型变量作为图的顶点类型,`jz[MAX][MAX]` 定义了一个二维数组来存储邻接矩阵。接着,分别用 `jzwxt`, `jzwxw`, `jzyxt`, `jzyxw` 来初始化四个邻接矩阵,分别用于无向图、无向网、有向图的表示。 接下来,定义了几个变量来记录各图的顶点数(n1, n2, n3)和边数(e1, e2, e3, e4)。`void output(jz G, int n)` 函数用于打印邻接矩阵,它接收一个邻接矩阵和顶点数作为参数,然后遍历矩阵并打印每个元素。 在 `void creat_wxt()` 函数中,用户被要求输入无向图的顶点数和边数,然后通过循环读取每一条边的两个顶点编号,将其添加到邻接矩阵 `jzwxt` 中。注意,由于无向图的边是双向的,所以邻接矩阵中 `(h, l)` 和 `(l, h)` 的值都设为1。 `void creat_wxw()` 函数与 `creat_wxt()` 类似,但增加了边的权重。用户输入无向网的顶点数和边数,以及每条边的权重,这些权重存储在邻接矩阵 `jzwxw` 中。同样,因为是无向网,所以 `(h, l)` 和 `(l, h)` 的权重相同。 `void creat_yxt()` 函数用于创建有向图,流程与无向图类似,但只考虑单向连接,即在邻接矩阵 `jzyxt` 中仅设置 `(h, l)` 的值,不设置 `(l, h)`,因为有向图的边是有方向性的。 最后,代码中并没有包含输出有向网的部分,可能是因为这部分被省略或将在其他部分实现。这段代码提供了一个基础的图处理框架,可以用来学习和理解图的邻接矩阵表示法以及如何创建和输出这种表示的图。