EDIT Кто-то указал мне, что мне действительно нужно уйти через всю мою рекурсию, чтобы убедиться, что я попал в конечную точку, а затем начну собирать когда я возвращаюсь через стеки. Я без понятия что это значит.Создайте вектор и сохраните информацию в рамках рекурсивного метода в Java
Моя цель - создать рекурсивный метод построения пути через лабиринт, сохранить этот путь в векторе и вернуть его в конце моей рекурсии.
Мой метод запускает лабиринт, но у меня возникают трудности с сохранением списка в моем векторе, потому что мне нужно создать экземпляр каждой рекурсии.
Вот мой код (EDITED):
protected Vector<GameCell> findPath(int nRow, int nCol)
{
aBoard[nRow][nCol].setVisited(true);
if(aBoard[nRow][nCol].getVal() == 'E')
{
Vector<GameCell> list = new Vector<GameCell>();
list.add(aBoard[nRow][nCol]);
return list;
}
if(canGoLeft(nRow, nCol))
{
if(!aBoard[nRow][nCol - 1].isVisited())
{
return findPath(nRow, --nCol);
}
}
if(canGoRight(nRow, nCol))
{
if(!aBoard[nRow][nCol+1].isVisited())
{
return findPath(nRow, ++nCol);
}
}
if(canGoUp(nRow, nCol))
{
if(!aBoard[nRow - 1][nCol].isVisited())
{
return findPath(--nRow, nCol);
}
}
if(canGoDown(nRow, nCol))
{
if(!aBoard[nRow + 1][nCol].isVisited())
{
return findPath(++nRow, nCol);
}
}
System.out.println("You hit a dead end.");
return null;
}
Есть ли способ, которым я не могу создать экземпляр моего Вектора каждую рекурсии, так что я могу хранить свои ценности навсегда?
Любая помощь была бы принята с благодарностью.
Да. Передайте его как аргумент методу и создайте его из метода. –
Я должен уточнить, параметры, которые я установил, являются единственными, которые я могу использовать согласно моей спецификации. Мой вектор должен быть создан в этом методе. –
'java.util.Vector' устарел 19 лет. Как долго вы программируете на Java? –