程序填空题:采用邻接矩阵表示法创建无向网
采用邻接矩阵表示法创建无向网。
```c++
#include
using namespace std;
#define MaxInt 32767
#define MVNum 100
#define OK 1
typedef char VerTexType;
typedef int ArcType;
typedef struct{
VerTexType vexs[MVNum];
ArcType arcs[MVNum][MVNum];
int vexnum,arcnum;
}AMGraph;
int LocateVex(AMGraph G , VerTexType v){
for(int i = 0; i < G.vexnum; ++i)
if(G.vexs[i] == v)
return i;
return -1;
}
int CreateUDN(AMGraph &G){
int i , j , k;
cin >> G.vexnum >> G.arcnum;
for(i = 0; i < G.vexnum; ++i){
cin >> G.vexs[i];
}
for(i = 0; i < G.vexnum; ++i)
for(j = 0; j < G.vexnum; ++j)
G.arcs[i][j] = MaxInt;
for(k = 0; k < G.arcnum;++k){
VerTexType v1 , v2;
ArcType w;
cin >> v1 >> v2 >> w;
i = @@[LocateVex(G, v1)](2);
j = @@[LocateVex(G, v2)](2);
G.arcs[i][j] =@@[w](2);
G.arcs[j][i] = @@[G.arcs[i][j]](2);
}
return OK;
}
```
答案:
第1空:LocateVex(G, v1)
第2空:LocateVex(G, v2)
第3空:w
第4空:G.arcs[i][j]
```c++
#include
using namespace std;
#define MaxInt 32767
#define MVNum 100
#define OK 1
typedef char VerTexType;
typedef int ArcType;
typedef struct{
VerTexType vexs[MVNum];
ArcType arcs[MVNum][MVNum];
int vexnum,arcnum;
}AMGraph;
int LocateVex(AMGraph G , VerTexType v){
for(int i = 0; i < G.vexnum; ++i)
if(G.vexs[i] == v)
return i;
return -1;
}
int CreateUDN(AMGraph &G){
int i , j , k;
cin >> G.vexnum >> G.arcnum;
for(i = 0; i < G.vexnum; ++i){
cin >> G.vexs[i];
}
for(i = 0; i < G.vexnum; ++i)
for(j = 0; j < G.vexnum; ++j)
G.arcs[i][j] = MaxInt;
for(k = 0; k < G.arcnum;++k){
VerTexType v1 , v2;
ArcType w;
cin >> v1 >> v2 >> w;
i = @@[LocateVex(G, v1)](2);
j = @@[LocateVex(G, v2)](2);
G.arcs[i][j] =@@[w](2);
G.arcs[j][i] = @@[G.arcs[i][j]](2);
}
return OK;
}
```
答案:
第1空:LocateVex(G, v1)
第2空:LocateVex(G, v2)
第3空:w
第4空:G.arcs[i][j]