邻接矩阵的建立

邻接矩阵的建立_第1张图片

邻接矩阵的建立_第2张图片

【算法思想】
 

(1)输入总顶点数和总边数。


(2)依次输入点的信息存入顶点表中。


(3)初始化邻接矩阵,使每个权值初始化为极大值。

(4)构造邻接矩阵。

邻接矩阵的建立_第3张图片

 邻接矩阵的建立_第4张图片

邻接矩阵的建立_第5张图片 

#define Maxlnt 32767
#define MVNum 100
typedef char VerTexType;
typedef int ArcType;
typedef struct{
	VerTexType vexs[MVNum];
	ArcType arcs[MVNum][MvNum];
	int vexnum,arcnum;
	
}AMGraph;

Status CreateUDN(AMGraph *G){
	cin>>G.vexnum>>G.arcnum;
	int i,j;
	for(i=0;ivexnum;i++){
		cin>>G.vexnum;
	}
	for(i=0;ivexnum;i++){
		for(j=0;jvexnum;j++){
			G.arcs[i][j]=Maxlnt;
		}
	}
	int k;
	for(k=0;karcnum;k++){
		cin>>v1>>v2>>w;
		i=LocateVex(G,v1);
		j=LocateVex(G,v2);
		G->arcs[i][j]=w;
		G->arcs[i][j]=G->arcs[j][i];
	}
	return OK;
}
int LocateVex(AMGraph G,VertexType u){
	int i;
	for(i=0;ivexs[i])return i;
	}
	return -1;
}


 

 

你可能感兴趣的:(算法)