voidCreateUDN(AMGraph &G){ scanf("%d %d",&G.vexnum, &G.arcnum); // 吸收第一行输入后的换行符 getchar(); // 读取顶点信息(连续字符,如"ABCDE") for (int i = 0; i < G.vexnum; ++i) { scanf("%c",&G.vexs[i]); } // 初始化邻接矩阵 for (int i = 0; i < G.vexnum; ++i) { for (int j = 0; j < G.vexnum; j++) { G.arcs[i][j] = 0; } } getchar();
for (int k = 0; k < G.arcnum; k++){ char v1, v2; scanf("%c %c",&v1, &v2); getchar();
int a = -1, b = -1; // 用于存储v1v2下标 for (int i = 0; i < G.vexnum; ++i) { if (v1 == G.vexs[i]) { a = i; break; } } for (int i = 0; i < G.vexnum; ++i) { if (v2 == G.vexs[i]) { b = i; break; } } if (a == -1 || b == -1) { continue; // 无效顶点则不处理 } G.arcs[a][b] = 1; G.arcs[b][a] = 1;