#include<stdio.h>
#include<stdlib.h>
#include<iostream>
using namespace std;
#define MAX 300
#define IN 10000
typedef struct{//有向图
char vex[MAX];//顶点
int edge[MAX][MAX];//邻接矩阵
int vexnum,arcnum;//顶点数、边数
}Mgraph;
void creat(Mgraph &g){
int i,j,k,w;
printf("input vexnum and arcnum:");
scanf("%d%d",&g.vexnum,&g.arcnum);
cout<<"please input everynode info:\n";
for(int i=0;i<g.vexnum;i++){
cin>>g.vex[i];
}
for(int i=0;i<=g.vexnum;i++){
for(int j=0;j<=g.vexnum;j++){
if(i==j)g.edge[i][j]=0;
else g.edge[i][j]=IN;
}
}
for(int i=0;i<g.arcnum;i++){
cout<<"input (start end much):"<<endl;
int a,b,c;
cin>>a>>b>>c;
g.edge[a][b]=c;
}
}
void print(Mgraph &g){
cout<<"output :"<<endl;
for(int i=0;i<g.vexnum;i++){
cout<<g.vex[i]<<" ";
}
cout<<endl;
int index = 0;
for(int i = 1;i<=g.vexnum;i++){
cout<<g.vex[index++]<<" ";
for(int j = 1;j<=g.vexnum;j++){
if(g.edge[i][j] == IN|| g.edge[i][j] == 0){
cout<<"∞"<<" ";
}else{
cout<<g.edge[i][j]<<" ";
}
}cout<<endl;
}
}
int main(){
Mgraph g;
creat(g);
print(g);
}
c语言数据结构---有向图邻接矩阵
最新推荐文章于 2024-08-15 22:24:55 发布