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>的权值置为wG.arcs[j][i] = G.arcs[i][j]; //置<v1, v2>的对称边<v2, v1>的权值为w}//forreturn OK;}//CreateUDN
//补充算法:在图中查找定点int LocateVex(AMGraph G, VertexType u){//图G中查找顶点u,存在则返回顶点表中的下表,否则返回-1int i;for(i = 0; i < G.vexnum; ++i)if(u === G.vexs[i])returni;returb -1;}
思路

