interface Stack<T> { push(T t); T pop(); T peek(); boolean isEmpty(); } // Sort a stack? // Does it mean changing the order of elements in the stack? // What about popping all elements out to a list, sorting, and pushing back? sort(Stack<T> stack) { Stack<T> temp = initStack(); Stack<T> toReturn = initStack(); while (!stack.isEmpty()) { T t = stack.pop(); while (!toReturn.isEmpty() && t > toReturn.peek()) { temp.push(toReturn.pop()); } toReturn.push(t); while (!temp.isEmpty()) { toReturn.push(temp.pop()); } } return toReturn; }
时间: 2024-10-07 17:55:08