/ ///** // * 图的数据结构:采用邻接矩阵的存储方式来表示图中顶点之间的关系。实现有:求图的 // * // * @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; }