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
public void sortStack(Stack<Node> stack) {
List<Node> tempList = new ArrayList<Node>();
while(!stack.isEmpty()) {
tempList.add(stack.pop());
}
Comparator comparator = new Comparator( {
public int compare(Node nodeOne, Node nodeTwo) {
if (nodeOne.getValue() == nodeTwo.getValue()) return 0;
// Sort in Descending Order
if (nodeOne.getValue() > nodeTwo.getValue()) {
return -1;
}
else {
return 1;
}
}
});
Collections.sort(tempList, comparator);
for (Node node : tempList) {
stack.push(node);
}
}
No comments:
Post a Comment