Ich frage mich, wie das oberste Element eines Stapels rekursiv nach unten vertauschen. Der Stapel sollte am Ende wie folgt suchen:Wie rekursiv das oberste Element des Stapels nach unten tauschen
4 (top)
3
2
1
wird
3 (top)
2
1
4
ich die rekursive Funktion die Reihenfolge des Stapels rückgängig herausgefunden. Aber ich versuche, es nur für einen zu tun. Ich gehe davon aus, dass es etwas mit der Änderung des Basisfalls zu tun hat.
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;
}
}