#define MaxVertexNum 20 /* 最大顶点数设为20 /
#define INFINITY 32767 / ∞设为双字节无符号整数的最大值32767*/
typedef char VertexType; /* 顶点类型设为字符型 /
typedef int EdgeType; / 边的权值设为整型 /
enum GraphType { DG, UG, DN, UN };
/ 有向图,无向图,有向网图,无向网图*/
typedef struct {
VertexType Vertices[ MaxVertexNum ]; /* 顶点表 /
EdgeType Edges[ MaxVertexNum ][ MaxVertexNum ]; / 邻接矩阵,即边表 /
int n, e; / 顶点数n和边数e /
enum GraphType GType; / 图的类型分4种:UG、DG、UN、DN /
} MGraph; / MGragh是以邻接矩阵存储的图类型 /
void CreateMGraph ( MGraph *G )
{
int i, j, k, w;
G-> GType = UN; / Undirected Network 无向网图 /
printf( "请输入顶点数和边数(输入格式为:顶点数, 边数):\n" );
scanf( "%d, %d",&(G->n), &(G->e) ); / 输入顶点数和边数 /
printf("请输入顶点信息(输入格式为:顶点号):\n");
for ( i = 0; i < G->n; i++ )
scanf( "%c",&(G-> Vertices[i]) ); / 输入顶点信息,建立顶点表 /
for ( i = 0; i < G->n; i++ )
for ( j = 0; j < G->n; j++ )
G->Edges[i][j] = INFINITY; / 初始化邻接矩阵 /
printf( "请输入每条边对应的两个顶点的序号和权值,输入格式为:i, j, w:\n" );
for ( k = 0; k < G->e; k++ ) {
scanf("%d,%d,%d ",&i, &j, &w); / 输入e条边上的权,建立邻接矩阵 /
G->Edges[i][j] = w;
G->Edges[j][i] = w; / 因为无向网图的邻接矩阵是对称的 */
}
}
建立图的邻接表的问题,不知道问题出在哪,求解答
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
悬赏问题
- ¥15 自动转发微信群信息到另外一个微信群
- ¥15 outlook无法配置成功
- ¥30 这是哪个作者做的宝宝起名网站
- ¥60 版本过低apk如何修改可以兼容新的安卓系统
- ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程
- ¥15 完成下列问题完成下列问题
- ¥15 C#算法问题, 不知道怎么处理这个数据的转换