スタックの一番上の要素を一番下にスワップする方法は不思議です。 スタックはこのように見える終わる必要があります。スタックの一番上の要素を一番下にスワップする方法
4 (top)
3
2
1
は
3 (top)
2
1
4
になり、私は、スタックの順番を逆にする再帰関数を考え出しました。しかし、私はそれを1つのためにしようとしている。私はそれが基本ケースを変更することと関係があると仮定しています。
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;
}
}