include<bits/stdc++.h>
using namespace std;
#define maxint 32767
#define mvnum 100
typedef struct
{
char vexs[mvnum];
int arcs[mvnum][mvnum];
int vexnum, arcnum;//顶点数和边数
}graph;
int locate(graph g , char c)//输入顶点返回顶点所在数组下标
{
for(int i=0;i<g.vexnum;i++)
{
if(g.vexs[i]==c)
{
return i;//返回位置
}
}
return -1;//出错
}
void initialgraph(graph& g)
{
char v1,v2;
float w;
cout << "请输入总顶点数总边数" << endl;
cin >> g.vexnum >> g.arcnum;
cout << "请输入顶点信息" << endl;
for (int i = 0; i < g.vexnum; i++)
{
cin>>g.vexs[i];
}//输入顶点
for(int i=0;i<g.vexnum;i++)
{
for(int j=0;j<g.vexnum;j++)
{
if(i==j)
{
g.arcs[i][j]=0;
}
else
{
g.arcs[i][j]=maxint;
}
}
}//初始化时候有边为最大,无边为0
cout<<"请输入顶点和权值"<<endl;
for(int k=0;k<g.arcnum;k++)//根据边数输入权值
{
cin>>v1>>v2>>w;
int a=locate(g,v1);
int b=locate(g,v2);
g.arcs[a][b]=w;
g.arcs[b][a]=w;
}
for(int i=0;i<g.vexnum;i++)
{
for(int j=0;j<g.vexnum;j++)
{
cout<<setw(10)<<g.arcs[i][j];
}
cout<<endl;
}//打印图的邻接矩阵
}