#include<iostream>
#define N 100
using namespace std;
struct Graph{
int vertex_number;
int edge_number;
char vertex[N];
int edge[N][N];
};
Graph* G;
int getVertexPosition(char v){
for(int k=0;k<G->edge_number;k++){
if(G->vertex[k]==v){
return k;
}
}
return -1;
}
void createGraph(){
cout<<"请输入各个顶点:"<<endl;
for(int k=0;k<G->vertex_number;k++){
cin>>G->vertex[k];
}
for(int i=0;i<G->vertex_number;i++){
for(int j=0;j<G->vertex_number;j++){
G->edge[i][j]=0;
}
}
cout<<"请输入各个边的邻接点、权重:"<<endl;
for(int k=0;k<G->edge_number;k++){
char v1,v2;
int weight;
cin>>v1>>v2>>weight;
int i=getVertexPosition(v1);
int j=getVertexPosition(v2);
G->edge[i][j]=weight;
}
}
void show(){
cout<<"输出各个顶点:"<<endl;
for(int k=0;k<G->vertex_number;k++){
cout<<G->vertex[k];
}
cout<<endl;
cout<<"输出邻接矩阵:"<<endl;
for(int i=0;i<G->vertex_number;i++){
for(int j=0;j<G->vertex_number;j++){
cout<<G->edge[i][j];
}
cout<<endl;
}
}
int main(){
G=new Graph();
cout<<"请输入顶点个数、边个数:"<<endl;
cin>>G->vertex_number>>G->edge_number;
createGraph();
show();
return 0;
}