2016-04-10 26 views
0

/** * 2D Matrix (bir kurucu yerine) * satır ve sütunlar hem sıfırdan büyük olmalıdır başlatır. * Matrisin yüksekliğini belirten @param satırları tamsayısı> 0 * matrisinin genişliğini belirten param cols tamsayı> 0 * @return boole, girişler kabul edilebilirse doğru, aksi halde yanlıştır. */2d matris

public boolean init(int rows, int cols) 
{ 
    matrix = new LinkedList<LinkedList<Integer>>(); 
    if(this.rows < 0 || this.cols < 0) 
     return false; 

    if(this.rows > 0 && this.cols > 0) 
     for(int i = 0; i < rows; i++) 
      matrix.add(new LinkedList<Integer>()); 
      for(int j = 0; j < cols; j++) 
       matrix.get(cols).add(j); 
     return true; 


} 

ben bağlantılı listenin bağlantılı listesini kullanarak bu matrisi başlatmak için çalışıyorum, ancak ben şaşırıp.

cevap

0

{ ve } eksiksiniz. Yeni başlayanlar için her zaman if ve for için küme parantezleri koymak iyi bir kuraldır.

Örneğinizde, ikinci for girintili olsa bile, ilk döngünüzün parçası olmayacaktır.

Ayrıca döngü doğru değil, olması gerektiği:

for(int i = 0; i < rows; i++) { 
    List<Integer> list = new LinkedList<Integer>(); 
    for(int j = 0; j < cols; j++) { 
     list.add(0); 
    } 
    matrix.add(list); 
}