Question
Write a program to sort a stack in ascending order. You should not make any assumptions about how the stack is implemented.
The following are the only functions that should be used to write this program: push | pop | peek | isEmpty.
Solution
This is a very good question that tests stack operations.
Code
written by me
public static Stack<Integer> sort(Stack<Integer> s) {
Stack<Integer> result = new Stack<Integer>();
while (!s.isEmpty()) {
Integer nextNum = s.pop();
while (!result.isEmpty() && result.peek() < nextNum) {
s.push(result.pop());
}
result.push(nextNum);
}
return result;
}