33,028
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
#define INFINITY 1000
#define MAX_VERTEX_NUM 100
struct ArcCell{
int adj;
};
struct Graph{
char vexs[MAX_VERTEX_NUM];
int arcs[20][20];
int vexnum,arcnum;
};
int Locate(Graph G,char v){
int i;
for(i=0;i <G.vexnum;i++)
if(v==G.vexs[i])
return i;
return -1;
}
void Creat(Graph &G){
int i,j,k;
cout <<"input the vexnum and the arcnum:";
cin>>G.vexnum>>G.arcnum;
cout <<"input the vexs";
for(i=0;i <G.vexnum;i++)
cin>>G.vexs[i];
for(i=0;i <G.vexnum;i++){
for(j=0;j <G.arcnum;j++)
G.arcs[i][j]=INFINITY;}
cout <<"input the arcs and the weight:";
char v1,v2;
int w;
for(k=0;k <G.arcnum;k++){
cin>>v1>>v2>>w;
i=Locate(G,v1);
j=Locate(G,v2);
G.arcs[i][j]=w;
G.arcs[j][i]=G.arcs[i][j];
cout <<G.arcs[0][1] <<endl;
cout <<G.arcs[i][j] << endl;
//如果i=1,j=0,为什么用cout <<G.arcs[i][j].adj <<endl和cout <<G.arcs[1][0] <<endl;输出的结果不一样
}
}
void main(){
Graph G;
Creat(G);
}