У меня все еще есть проблемы с компиляцией кода, так как появляются следующие 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);
}
}
Может ли кто-нибудь предоставить мне «точные решения» или «подробные шаги», чтобы я мог их исправить?
Если это так, пожалуйста, дайте мне знать как можно скорее, так как мне нужно отправить код сегодня вечером.
Спасибо!
Если метод принимает аргумент String и int в качестве аргумента, вы должны вызвать его с помощью String и int. Не с бананом и множеством автомобилей. Первый метод принимает в качестве аргументов 'boolean [] [], int, boolean []'. Вы вызываете его с помощью 'Integer [] [], int' в качестве аргументов. Как это могло сработать? –
Да Андерсон. Я просто хотел перепроверить его, чтобы он выглядел яснее. – javaGuy