7-1 邻接矩阵存储创建有向图

编程实现:以邻接矩阵的存储方式,创建一个有向图,顶点为字符型。

include

include

using namespace std;
const int N=1010;
struct {
int n,m;
char vers[N];
bool arcs[N][N];
}gra;
int find(char c){
for(int i=0;i<gra.n;i++){
if(gra.vers[i]c){
return i;
}
}
return -1;
}
void add(char x,char y){
int u=find(x),v=find(y);
if(u&&v){
gra.arcs[u][v]=1;
}
else{
cout<<"error";
exit(0);
}
}
int main(){
cin>>gra.n>>gra.m;
if(gra.n
0||gra.n==1&&gra.m>1){
cout<<"error";
return 0;
}
for(int i=0;i<gra.n;i++){
cin>>gra.vers[i];
}
for(int i=0;i<gra.m;i++){
char u,v;
cin>>u>>v;
add(u,v);
}
for(int i=0;i<gra.n;i++){
for(int j=0;j<gra.n;j++){
if(j) cout<<' ';
cout<<gra.arcs[i][j];
}
if(i!=gra.n-1) cout<<endl;
}
return 0;
}

posted @ 2021-11-14 19:26  Lindseyyip  阅读(122)  评论(0)    收藏  举报