2015-04-14 5 views
-2

У меня все еще есть проблемы с компиляцией кода, так как появляются следующие 4 ошибки. Таким образом, это не позволяет мне запускать мой код и иметь желаемый результат.Ошибки компилятора?

Вот 4 ошибки:

Ошибка 1:

Solver.java:29: error: method breadthFirstSearch in class SearchMethods cannot be applied to given types; 
     sm.breadthFirstSearch(adjMatrix, 0); 
     ^
    required: boolean[][],int,boolean[] 
    found: Integer[][],int 
    reason: actual and formal argument lists differ in length 

Ошибка 2:

Solver.java:34: error: method depthFirstSearch in class SearchMethods cannot be applied to given types; 
     sm.depthFirstSearch(adjMatrix, 0); 
     ^
    required: int[][],int[],int,int 
    found: Integer[][],int 
    reason: actual and formal argument lists differ in length 

Ошибка 3:

SearchMethods.java:64: error: cannot find symbol 
      Queued qd = new Queued(); 
      ^
    symbol: class Queued 
    location: class SearchMethods 

Ошибка 4:

SearchMethods.java:64: error: cannot find symbol 
      Queued qd = new Queued(); 
          ^
    symbol: class Queued 
    location: class SearchMethods 

Кроме того, ниже я приложил код (ы).

Вот первый/главный код: SearchMethods.java

public class SearchMethods 
{ 
    // initialize the adjacent matrix: Matrix to all zeros. 
    public void initMatrix(Integer[][] Matrix) 
    { 
     for(int i=0; i < Matrix.length; i++) 
     { 
      for(int j=0; j < Matrix[i].length; j++) 
      { 
       Matrix[i][j]=0; 
      } 
     } 
    } 

    // disply the adjacent matrix: Matrix. 
    public void displayMatrix(Integer[][] Matrix) 
    { 
     for(int i=0; i < Matrix.length; i++) 
     { 
      for(int j=0; j < Matrix[i].length; j++) 
      { 
       System.out.print(" "+Matrix[i][j]); 
      } 
       System.out.println(); 
     } 
    } 

    // this method should be called each time the array reached is updated. 
    private void displayReached(boolean[] r) 
    { 
     for(int i=0; i< r.length; i++) 
     { 
      if(r[i]== false) 
      { 
       System.out.print(" F"); 
      } 

      else 
      { 
       System.out.print(" T"); 
      } 
     } 
      System.out.println(); 
    }  

    //BFS  
    public void breadthFirstSearch(boolean[][] M, int callVertex, boolean[] reached) 
    { 
     reached = new boolean[M.length]; 
     while(true) 
     { 
      boolean test = false; 
      for(int i = 0;i < M.length; i++) 
      { 
       if(reached[i] == false) 
       { 
        test = true; 
       } 
      } 

      if(test == false) 
      break; 
     } 
      Queued qd = new Queued(); 
      qd.enqueue=new Integer[M.length]; 
      qd.offer(callVertex); 
      reached[callVertex]=true; 
      while(!qd.isEmpty()) 
      { 
       Integer temp=(Integer)qd.dequeue(); 
       System.out.println(temp); 

       for(int i=0;i<M[0].length;i++) 
       { 
        if(M[temp][i]==true && reached[i]==false) 
        { 
         qd.offer(i); 
         reached[i]=true; 
        } 
       } 
      } 
    } 

    //DFS 
    public static void depthFirstSearch(int mInteger[][], int nextArray[], int callVertex, int s) 
    { 
     System.out.println("/r" + (callVertex + 1)); 
     nextArray[callVertex] = 1; 

     for(int k = 0; k < s; k++) 
     { 
      if(mInteger[callVertex][k] == 1 && nextArray[k] == 0) 
      { 
       depthFirstSearch(mInteger,nextArray,k,s); 
      } 
     } 
    } 
} 

и вот второй код: Solver.java, который используется для запуска в компиляторе и производят желаемый результат

public class Solver { 

    public static void main(String[] args) { 

     Integer[][] //adjMatrix 

     adjMatrix = { 
       // A, B, C, D, E, F, G, H, I, J, 
       {0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, //A 
       {0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, //B 
       {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, //C   
       {0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, //D 
       {0, 0, 1, 0, 0, 0, 1, 1, 0, 0}, //E 
       {0, 0, 0, 1, 1, 0, 0, 0, 0, 0}, //F 
       {0, 0, 0, 0, 0, 0, 0, 1, 1, 0}, //G 
       {0, 0, 0, 0, 0, 1, 0, 0, 1, 1}, //H 
       {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, //I 
       {0, 0, 0, 0, 0, 1, 0, 0, 1, 0} //J   
        }; 
     SearchMethods sm = new SearchMethods(); 

     System.out.println("The input graph G in adjacent Matrix is:"); 
     System.out.println(); 
     sm.displayMatrix(adjMatrix); 
     System.out.println(); 

     System.out.println("Performing the BFS on G with start vertex A: "); 
     System.out.println(); 
     sm.breadthFirstSearch(adjMatrix, 0); 
     System.out.println(); 

     System.out.println("Performing the DFS on G with start vertex A: "); 
     System.out.println(); 
     sm.depthFirstSearch(adjMatrix, 0); 



    } 

} 

Может ли кто-нибудь предоставить мне «точные решения» или «подробные шаги», чтобы я мог их исправить?

Если это так, пожалуйста, дайте мне знать как можно скорее, так как мне нужно отправить код сегодня вечером.

Спасибо!

+0

Если метод принимает аргумент String и int в качестве аргумента, вы должны вызвать его с помощью String и int. Не с бананом и множеством автомобилей. Первый метод принимает в качестве аргументов 'boolean [] [], int, boolean []'. Вы вызываете его с помощью 'Integer [] [], int' в качестве аргументов. Как это могло сработать? –

+0

Да Андерсон. Я просто хотел перепроверить его, чтобы он выглядел яснее. – javaGuy

ответ

1

Ошибка 1: Вы не задаете правильные параметры. Посмотрите на сообщение об ошибке. Он говорит вам точно, что вы ему дали, и он ожидает. Похоже, вам нужно просто удалить параметр boolean[] reached. Вы не объявляете переменные с помощью метода в качестве параметров для функции.

Ошибка 2: То же самое

Ошибка 3: Queued не класс, который на самом деле существует в любом месте. Вы имели в виду использовать Queue? Посмотрите несколько примеров того, как использовать это, вы не сможете просто заменить Queued на Queue, так как Queue - это интерфейс.

Ошибка 4: То же самое.

+0

Для ошибки 1, где я могу удалить логический [] достигнутый параметр? Везде в коде? – javaGuy

+0

Что я могу удалить/изменить для ошибки 2? – javaGuy

+0

Для ошибок 3 и 4, да, я просто пытался использовать новую переменную Queued, так как я могу исправить эти 2 ошибки и где это сделать в коде (-ах), который я предоставил? – javaGuy

Смежные вопросы