我試圖編寫一個方法,可以重新排列整數從偶到奇數的隊列。重新排列整數隊列
使得[3,5,4,17,6,83,1,84,16,37]將如[4,6,84,16,3,5,17,83,1,37 ]
但即時卡住現在,有人可以幫助我。這是我到目前爲止得到的
public void rearrange(Queue<Integer> q) {
Stack<Integer> s = new Stack<Integer>();
int size = q.size();
for (int i = 0; i < size; i++) {
int n = q.remove();
if (n % 2 == 1 || n % 2 == -1) {
q.add(n);
}
if(n % 2 == 0) {
q.add(n);
}
}
}
我不認爲你的方法可以工作;而不是使用單個幫助程序堆棧,我認爲您需要使用兩個幫助程序隊列(一個保存偶數值,一個保存奇數值)。 – ruakh
附錄/更正:由於您事先檢查了您的隊列大小,並基於此進行迭代,而不是基於隊列是否爲非空,您可以將隊列本身用作我之前提到的「助手隊列」之一評論。使用這種方法,你可以用堆棧替換另一個幫助器隊列,前提是你願意兩次運行整個操作(以便元素以正確的順序結束)。所以,如果你願意的話,你實際上可以只用一個助手堆棧來做到這一點:這只是一個痛苦。 – ruakh