/
///**
// * 圖的資料結構:采用鄰接矩陣的存儲方式來表示圖中頂點之間的關系。實作有:求圖的
// *
// * @author timmy1 使用二維數組來存儲圖中頂點的關系:數字為0表示自己,最大值表示兩個頂點之間不聯通, -》求頂點的入度和出度
// * -》頂點a到頂點b之間的權值 ==》先建立這個圖
// */
int[][] matrix;// 矩陣
int MAX_VALUE = Integer.MAX_VALUE;
int size;
public void FromJava() {
createGraph(5);
ViseLog.i("頂點出度為:" +getVertexOutDegree(0));
ViseLog.i("兩個頂點之間的權值為:" +getVertexWeight(1, 2));
}
private void createGraph(int index) {
size = index;
matrix = new int[index][index];
int[] a0 = { 0, MAX_VALUE, MAX_VALUE, MAX_VALUE, 6 };
int[] a1 = { 9, 0, 3, MAX_VALUE, MAX_VALUE };
int[] a2 = { 2, MAX_VALUE, 0, 5, MAX_VALUE };
int[] a3 = { MAX_VALUE, MAX_VALUE, MAX_VALUE, 0, 1 };
int[] a4 = { MAX_VALUE, MAX_VALUE, MAX_VALUE, MAX_VALUE, 0 };
matrix[0] = a0;
matrix[1] = a1;
matrix[2] = a2;
matrix[3] = a3;
matrix[4] = a4;
}
/**
* 擷取頂點的出度
* @param index
* @return
*/
public int getVertexOutDegree (int index ){
int degree=0;
for (int i=0;i<size;i++){
if (matrix[i][0]>0&&matrix[i][0]<MAX_VALUE){
degree++;
}
}
return degree ;
}
public int getVertexWeight(int i,int j){
int weight = matrix[i][j];
weight = weight == 0? 0:weight== MAX_VALUE?-1:weight;
return weight;
}