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;
}原文:http://7371901.blog.51cto.com/7361901/1583037