1、邻接矩阵的存储表示:用两个数组分别存储顶点表和邻接矩阵
#define MaxInt 996699 //表示极大值,即无穷大
#define MVNum 100 //最大顶点数
typedef char VerTexType //设顶点的数据类型为字符型
typedef int arcType //假设边的权值类型为整型
typedef struct{
VerTextType vexs[MVNum]; //顶点表
ArcType arcs[MVNum][MVNum]; //邻接矩阵
int vexnum, arcnum; //图的当前点数和边数
}AMGraph; //Adjacency Matrix Graph
//算法6.1 采用邻接矩阵表示法创建无向网
Status CreateUDN(AMGraph &G){
//采用邻接矩阵表示法,创建无向网
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.arcumm; ++k){ //构造邻接矩阵
cin>>v1>>v2>>w; //输入一条边所依附的顶点及边的权值
i = LocateVex(G, v1);
j = LocateVex(G, v2); //确定v1和v2在G中的位置
G.arcs[i][j] = w; //边<v1, v2>的权值置为w
G.arcs[j][i] = G.arcs[i][j]; //置<v1, v2>的对称边<v2, v1>的权值为w
}//for
return OK;
}//CreateUDN
//补充算法:在图中查找定点
int LocateVex(AMGraph G, VertexType u){
//图G中查找顶点u,存在则返回顶点表中的下表,否则返回-1
int i;
for(i = 0; i < G.vexnum; ++i)
if(u === G.vexs[i])
returni;
returb -1;
}