0
我想知道如何遞歸交換堆棧的頂部元素到底部。 棧應該結束這樣看:如何遞歸交換堆棧的頂部元素到底部
4 (top)
3
2
1
成爲
3 (top)
2
1
4
我想通了遞歸函數扭轉堆棧的順序。但我一直試圖只爲其中一個做。我認爲這與改變基本情況有關。
public void roll() {
if (!isEmpty()){
E temp = getBottom(this);
roll();
this.push(temp);
}
}
private E getBottom(LinkedStack<E> p){
E temp = p.pop();
if (p.isEmpty()){
return temp;
} else {
E temp2 = getBottom(p);
p.push(temp);
return temp2;
}
}