public void question(int col, int n, Node<Integer> part_soln) {
if (col==0) stack.push(part_soln);
else for (int row=1; row<=n; row++)
{ if (!exists(row,part_soln) && !unsafe(col,row,col+1,part_soln))
{ Node<Integer> new_soln = new Node<Integer>(row,part_soln);
question(col-1,n,new_soln);
}
}
}
我被插入part_soln入堆棧,但現在我想第一part_soln而不是堆棧,我將打破循環,一旦我得到的part_soln,我修改的問題成爲Java的回報問題
public void question(int col, int n, Node<Integer> part_soln) {
if (col==0) return part_soln;
else for (int row=1; row<=n; row++)
{ if (!exists(row,part_soln) && !unsafe(col,row,col+1,part_soln))
{ Node<Integer> new_soln = new Node<Integer>(row,part_soln);
question(col-1,n,new_soln);
}
}
return null;
}
問題發生,我不能得到堆棧中的第一個元素,但不斷得到「空」作爲答案,任何建議?
你用什麼參數調用'question'?是不是應該返回'Node'而不是'void'? –
2010-10-21 13:01:40
當你在'question(col-1,n,new_soln)'中調用'question'時,你想用返回值做些什麼嗎? – 2010-10-21 13:04:10
你和user478763一樣嗎?如果是這樣,那麼你現在在這裏提出的六個完全無法回答的問題,產生4的總聲望(可能會下降)。 – DJClayworth 2010-10-21 13:56:18