Je me demande comment échanger de façon récursive l'élément supérieur d'une pile vers le bas. La pile devrait finir par ressembler à ceci:Comment échanger récursivement l'élément supérieur de la pile vers le bas
4 (top)
3
2
1
devient
3 (top)
2
1
4
je me suis dit la fonction récursive pour inverser l'ordre de la pile. Mais je suis coincé à essayer de le faire pour un seul. Je suppose que cela a quelque chose à voir avec la modification du scénario de base.
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;
}
}