I have a homework problem in which I need to remove all the green items from the stack.
Here is my code:
import java.util.*;
import java.io.*;
public class Pex
{
public static void main(String[] args)
{
Stack stack1 = new Stack();
addPez(stack1);
removeGreen(stack1);
System.out.println(printStack(stack2));
}
public void addPez(Stack stack1)
{
stack1.push("yellow");
stack1.push("red");
stack1.push("green");
stack1.push("green");
stack1.push("yellow");
stack1.push("yellow");
stack1.push("red");
stack1.push("green");
}
public static void removeGreen(Stack stack1)
{
Stack temp = new Stack();
while (!stack1.isEmpty()){
String check = (String)(stack1.pop());
if(check.equals("green")){
stack1.pop();}
else{
temp.push(check);}
}
Stack stack2 = new Stack();
while (!temp.isEmpty()){
String tmp = stack1.pop();
stack2.push(tmp);}
}
public static void printStack(Stack stack2)
{
Stack xerox = stack2.clone();
while (!xerox.isEmpty()){
System.out.println(xerox.pop());}
}
}
Can someone point me in the right direction? I think I'm almost there.
I also need to figure out why I am getting some errors.
Here are the errors:
Pex.java:10: non-static method addPez(Stack) cannot be referenced from a static context
addPez(stack1);
^
Pex.java:12: cannot find symbol
symbol : variable stack2
location: class Pex
System.out.println(printStack(stack2));
^
Pex.java:39: incompatible types
found : java.lang.Object
required: java.lang.String
String tmp = stack1.pop();
^
Pex.java:45: incompatible types
found : java.lang.Object
required: Stack
Stack xerox = stack2.clone();
^
./Stack.java:69: cannot find symbol
symbol : variable stack1
location: class Stack
stack2 = (Stack)(stack1.clone());
^
5 errors
public static void main(String[] args) {
Stack stack1 = new Stack();
addPez(stack1);
removeGreen(stack1);
printStack(stack1); //stack2 is not defined and remove println statement
}
public static void addPez(Stack stack1) {//make addPez as static
stack1.push("yellow");
stack1.push("red");
stack1.push("green");
stack1.push("green");
stack1.push("yellow");
stack1.push("yellow");
stack1.push("red");
stack1.push("green");
}
public static void removeGreen(Stack stack1) {
Stack temp = new Stack();
while (!stack1.isEmpty()) {
String check = (String) (stack1.pop());
if (check.equals("green")) {
//stack1.pop();
} else {
temp.push(check);
}
}
//Stack stack2 = new Stack();
while (!temp.isEmpty()) {
String tmp = (String)temp.pop();
stack1.push(tmp);
}
}
public static void printStack(Stack stack1) {
Stack xerox = (Stack)stack1.clone();
while (!xerox.isEmpty()) {
System.out.println(xerox.pop());
}
}