스택의 맨 위 요소를 맨 아래로 재귀 적으로 스왑하는 방법을 알고 싶습니다. 스택이처럼 보이는 결국해야합니다스택의 맨 위 요소를 아래쪽으로 재귀 적으로 교환하는 방법
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;
}
}