我做了很多研究,但都不是递归的,就是不是我现在要找的。我正在尝试使用linkedstack而不是递归创建一个n-queens程序,linkedstack将接受object nqueen,而不仅仅是一堆整数。这是我第一次这样做,虽然我了解算法,但我只是不知道如何实现它。比如我如何将一个皇后与堆栈中的最后一个皇后进行比较,以及它们如何存储适合两个皇后不互相攻击的位置。我很迷茫,如果可能的话,一些代码如何实现它将是伟大的。
public class NQueen {
private static int numSolutions;
private int col;
private int row;
public int getCol()
{
return col;
}
public int getRow()
{
return row;
}
public void setCol(int num){
col= num;
}
public void setRow(int num) {
row= num;
}
public NQueen(int newRow, int newColumn) {
this.row = newRow;
this.col = newColumn;
}
public void solve(NQueen Queen, int n ) {
int current =0;
LinkedStack<Object> stack = new LinkedStack<>();
stack.push(Queen);
while(true) {
while(current < n) {
}
}
}
public boolean conflict(NQueen Queen) {
for(int i= 0; i < stack.size(); i++) {
}
//Check if same column or same diagonal
return true;
}
}
这是我在linkedstack中实现的returnitemat(int n)。谢谢你的帮助。
/**
*
* @precondition
* 0 <= n and n < size( ).
* @postcondition
* The return value is the item that is n from the top (with the top at
* n = 0, the next at n = 1, and so on). The stack is not changed
*
**/
public Object itemAt(int n) {
int index = n;
if ((n<0) && (n >= size())) {
throw new EmptyStackException();
}
int i = 0;
while (i < n) {
this.pop();
i++;
}
this.peek();
return peek();
}
暂无答案!
目前还没有任何答案,快来回答吧!