利用邻接矩阵创建无向网(即:无向带权图)
c++实现
#include <iostream>
#include <stdio.h>
using namespace std;
#define MaxInt 32767
#define MVNum 100
typedef char VerTexType;
typedef int ArcType;
typedef struct{
VerTexType vexs[MVNum];
ArcType arcs[MVNum][MVNum];
int vexnum, arcnum;
}AMGraph;
int LocateVex(AMGraph G, VerTexType u);
void CreatUDN(AMGraph &G){
cin>>G.vexnum>>G.arcnum;
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++){
G.arcs[i][j] = MaxInt;
}
}
for(int k=0; k<G.arcnum; k++){
int v1, v2, w;
cin>>v1>>v2>>w;
int i = LocateVex(G, v1);
int j = LocateVex(G, v2);
G.arcs[i][j] = w;
G.arcs[j][i] = w;
}
return ;
}
int LocateVex(AMGraph G, VerTexType u){
for(int i=0; i<G.vexnum; i++){
if(G.vexs[i]==u)
return i;
}
return -1;
}
int main()
{
AMGraph G;
CreatUDN(G);
return 0;
}