邻接矩阵的存储表示:用两个数组分别表示顶点表和邻接矩阵
#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; //Adjacency Matrix Graph
算法思想:
(1)输入总顶点数和总边数
(2)依次输入点的信息存入顶点表中
(3)初始化邻接矩阵,使每个权值初始化为极大值
(4)构造邻接矩阵
Status CreateUDN(AMGraph &G){ //采用邻接矩阵表示法,创建无向网G
cin>>G.vexnum>>G.arcnum; //输入总顶点数,总边数
for(i=0;i
for(i=0;i
for(k=0;k
i=LocateVex(G,v1);
j=LocateVex(G,v2); //确定v1和v2在G中的位置
G.arcs[i][j] = w; //边
G.arcs[j][i] = G.arcs[i][j]; //置
}
return OK;
}
补充算法:在图中查找顶点
int LocateVex(AMGraph G, VertexType u){
//图G中查找顶点u,存在则返回顶点表中的下标,否则返回-1
int i;
for(i=0;i
return -1’
}
