The Question is :
Three stacks can be used to sort a list of numbers. Assuming stack in holds the input list of numbers, stack out is to hold the output list after sorting the numbers and temp is used during the sorting process. The sorting algorithm follows.

1 set up stack in and print it
2 while stack in is not empty repeat
2.1 max = in.pop
2.2 while there are still element in stack in repeat
2.2.1 value = in.pop
2.2.2 if value > max
2.2.2.1 temp.push(max)
2.2.2.2 max = value
2.2.3 else
2.2.3.1 temp.push(value)
2.3 in = temp
2.4 out.push(max)
2.5 temp.clear
3 print sorted stack

``````import java.util.*;
public class MainAssignment3
{
public static void main(String[]args)
{
int Max =0;
int Value =0;

System.out.println("The Input Stack is : " + Input);

while(!Input.isEmpty())
{
Max = Input.removeLast();
Value = Input.removeLast();

System.out.println("MAx: " +Max);
System.out.println("Value: " +Value);

if (Value > Max)
{
Temp.push(Max);
Max=Value;

} else {
Temp.push(Value);

}

Input=Temp;
OutPut.push(Max);
Temp.clear();

}
System.out.println("The Output Stack is: " + OutPut);

}
}``````

My out put is :
-------------------------------------------------------------------------

The Input Stack is : [90, 21, 33, 80, 67]
MAx: 67
Value: 80
The Output Stack is: [80]

The out put should be [21, 33, 67, 80 ,90]

pls. help me to correct this..
i have tried and this is the only solution...

Process completed.

To debug these kinds of problems, you need either an interactive debugger or you must add lots of printlns to your code to show the logic flow and the values of the variables that are controlling the logic flow.

When you print out the values of variables be sure to add a unique label so you know where it was printed and what variable you are printing. Something like:
System.out.println("pC draw=" + draw);

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.