#include<iostream>
using namespace std;
//---------------图的邻接矩阵存储表示---------------
#define MaxInt 32767 //表示极大值 即无穷
#define MVNum 100 //最大顶点数
typedef char VerTexType; //假设顶点的数据类型为字符型
typedef int ArcType; //假设边的权值类型为整型
typedef struct
{
VerTexType vexs[MVNum]; //顶点表
ArcType arcs[MVNum][MVNum]; //邻接矩阵
int vexnum, arcnum; //图的当前点数和边数
}AMGraph;
void CreateUDN(AMGraph& G)
{
//采用邻接矩阵表示法,创建无向网G
cin >> G.vexnum >> G.arcnum;
for (int i = 0; i < G.vexnum; ++i)
cin >> G.vexs[i];
for (int i = 0; i < G.vexnum; ++i) //初始化邻接矩阵,边的权值均置为极大值MaxInt
for (int j = 0; j < G.vexnum; ++j)
G.arcs[i][j] = MaxInt;
for (int k = 0; k < G.arcnum; ++k)
{
int v1, v2, w; //输入一条边依附的顶点及权值
cin >> v1 >> v2 >> w;
//i=Locate(G,v1);j=Locate(G,v2);//确定v1和v2在G中的位置,即顶点数组的下标
//原则上需要用i j代替v1 v2
G.arcs[v1][v2] = w;
G.arcs[v2][v1] = G.arcs[v1][v2];
}
}