我在写一个解迷宫的算法,我有一个叫做char[][]迷宫的迷宫。它的元素是这样的;
{1,1,1,1,1,1, ..},
{1,0,1,0,1,1, ..},
{1,0,0,1,0,1, ..}, ...
共有13行17列。我必须使用块数据结构来解决它。根据我在脑海中设置的算法,我需要在这个堆栈中存储可导航路径的索引值。例如,根据上述迷宫:
0,0
0,1
0,2
0,3
0,4
1,4
1,5
2,5...
在前面的示例中,我经常保留一个整数,所以在实现堆栈构造时使用了这样的结构。
public class Stack {
int topOfStack;
int capacity;
int[] Stack;
public Stack(int capacity) {
this.capacity = capacity;
Stack = new int[capacity];
topOfStack = -1;
}
void push(int element)
{
if(topOfStack == capacity){
System.out.println("Stack Overflow...");
}
else{
topOfStack++;
Stack[topOfStack] = element;
}
}
}
我的问题就是这个。如何修改迷宫求解程序的堆栈结构?如果我需要再次声明,我必须在堆栈中保留坐标或类似的东西,而不是整数。谢谢。
2条答案
按热度按时间9gm1akwq1#
您可以创建一个名为coordinates的新类对象。这个类将有两个主要参数,即x和y。然后你可以用这个坐标对象来代替一个简单的整数。
您正在构建的结构可以是通用的,并且包含比基本结构更复杂的结构,这就是您在本示例中看到的
gywdnpxw2#
简单地说,可以使用2d数组来存储坐标: