2017年7月29日 星期六

(Java) (資料結構) 左上三角

  1. public class Left_Trangular_Matrix {  
  2.  // matrix不用第一列  
  3.  int[] m ;  
  4.  int n ;  
  5.  public static void main(String[] args) {  
  6.  int[][] arr = {{-1,-1,-1,-1,-1},  
  7.                  {-1,1,0,0,0},  
  8.                  {-1,2,1,0,0},  
  9.                  {-1,1,2,4,0},  
  10.                  {-1,4,5,5,5}};  
  11.  Left_Trangular_Matrix rTM = new Left_Trangular_Matrix(arr);  
  12.  System.out.println("左下三角方式 :");  
  13.     for(int i[] : arr ){  
  14.      for(int value : i){  
  15.       if(value != -1)  
  16.       System.out.print(value+"  ");  
  17.      }  
  18.      System.out.println();  
  19.     }  
  20.     System.out.println("一維方式 :");  
  21.     for(int i = 1 ; i <rTM.n+1; i++){  
  22.      for(int j = 1 ; j <= i ; j++ ){  
  23.         System.out.print(rTM.getValue(i, j)+" , ");  
  24.      }  
  25.     }  
  26.      
  27.  }  
  28.       int getValue(int i , int j ){  
  29.        int k ;   
  30.        k = i*(i-1)/2+j;  
  31.     return m[k-1];  
  32.  }  
  33.       Left_Trangular_Matrix(int[][] matrix ){  
  34.   int tmp = 0 ;  
  35.      n = (matrix.length-1) ;  
  36.   m = new int[n*(n+1)/2];  
  37.   for(int i = 1 ; i < matrix.length ; i++ ){  
  38.    for(int j = 1 ; j < matrix.length ; j++ ){  
  39.     if(matrix[i][j] != 0){  
  40.      m[tmp] = matrix[i][j] ;  
  41.      tmp++;  
  42.     }  
  43.    }  
  44.   }   
  45.  }  
  46.   
  47. }  

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。