package com.answer.tu;
public class MatrixDG {//无向图的邻接矩阵
private char[] mVexs;//顶点集合
private int[][] mMatrix;//矩阵
public MatrixDG(char[] vexs, char[][] edges){//顶点数组,边数组
int vlen=vexs.length;
int elen=edges.length;
mVexs=new char[vlen];
for(int i=0;i<mVexs.length;i++){
mVexs[i]=vexs[i];
}
mMatrix=new int[vlen][vlen];
for(int i=0;i<elen;i++){
int pos1=getPos(edges[i][0]);
int pos2=getPos(edges[i][1]);
mMatrix[pos1][pos2]=1;
}
}
private int getPos(char c) {
for(int i=0;i<mVexs.length;i++){
if(c==mVexs[i]){
return i;
}
}
return -1;
}
public void print(){
for(int i=0;i<mMatrix.length;i++){
for(int j=0;j<mMatrix[i].length;j++){
System.out.print(mMatrix[i][j]+" ");
}
System.out.println();
}
}
public static void main(String[] args) {
char[] vexs={'A','B','C','D'};
char[][] edges={
{'A', 'D'},
{'B','A'},
{'C', 'A'}, {'C', 'B'},
{'B', 'C'}
};
MatrixDG matrixDG=new MatrixDG(vexs,edges);
matrixDG.print();
}
}