gpt4 book ai didi

java - 我应该使用什么样的 Stack 数据结构?

转载 作者:行者123 更新时间:2023-12-04 08:35:15 24 4
gpt4 key购买 nike

我正在编写一个解决迷宫的算法,我有一个名为 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;
}
}
}
我的问题正是这个。如何为我的迷宫求解器程序修改此堆栈结构?如果我需要再次声明,我必须在堆栈中保留坐标或类似的东西,而不是整数。非常感谢。

最佳答案

简而言之,可以使用二维数组来存储坐标:

public class Stack {
int topOfStack;
int capacity;
int[][] stack;

public Stack(int capacity) {
this.capacity = capacity;
stack = new int[capacity][2];
topOfStack = -1;
}

void push(int x, int y)
{
if(topOfStack == capacity){
System.out.println("Stack Overflow...");
}
else{
stack[++topOfStack] = new int[] { x, y };
}
}

int[] pop() {
if (topOfStack < 0) {
System.out.println("Stack is empty");
return null;
}
return stack[topOfStack--];
}
}

关于java - 我应该使用什么样的 Stack 数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64831870/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com