42 lines
1.3 KiB
Java
42 lines
1.3 KiB
Java
|
/*
|
||
|
You have a stack with full of integers. Sort it in the ascending order using another temporary array by using all stack functionality.
|
||
|
*/
|
||
|
|
||
|
import java.util.Stack;
|
||
|
|
||
|
public class StackSort
|
||
|
{
|
||
|
|
||
|
public static Stack<Integer> sortStack(Stack<Integer> input)
|
||
|
{
|
||
|
Stack<Integer> tmpStack = new Stack<Integer>();
|
||
|
System.out.println("=============== debug logs ================");
|
||
|
while(!input.isEmpty())
|
||
|
{
|
||
|
int tmp = input.pop();
|
||
|
System.out.println("Element taken out: "+tmp);
|
||
|
while(!tmpStack.isEmpty() && tmpStack.peek() > tmp)
|
||
|
{
|
||
|
input.push(tmpStack.pop());
|
||
|
}
|
||
|
tmpStack.push(tmp);
|
||
|
System.out.println("input: "+input);
|
||
|
System.out.println("tmpStack: "+tmpStack);
|
||
|
}
|
||
|
System.out.println("=============== debug logs ended ================");
|
||
|
return tmpStack;
|
||
|
}
|
||
|
|
||
|
public static void main(String a[])
|
||
|
{
|
||
|
Stack<Integer> input = new Stack<Integer>();
|
||
|
input.add(34);
|
||
|
input.add(3);
|
||
|
input.add(31);
|
||
|
input.add(98);
|
||
|
input.add(92);
|
||
|
input.add(23);
|
||
|
System.out.println("input: "+input);
|
||
|
System.out.println("final sorted list: "+sortStack(input));
|
||
|
}
|
||
|
}
|