棧的特點是“先進後出”,隊列的特點是“先進先出”;向隊列中依次添加元素n、m,當刪除時,先刪除應該是n;向棧1中添加元素n、m,當要刪除時,把棧1的元素添加到棧2中,元素n剛好位於棧頂,n就會被先刪除,正好實現了隊列的特點。代碼如下,已測。
public class Queue {
private Stack<String> stackOne=new Stack<String>();
private Stack<String> stackTwo=new Stack<String>();
//添加元素
public void add(String str){
stackOne.push(str);
}
//刪除元素
public void delete(){
if(stackTwo.isEmpty()){
while(!stackOne.isEmpty()){
stackTwo.push(stackOne.pop());
}
}
if(stackTwo.isEmpty()){//棧1和棧2都爲空時候
System.out.println("queue is empty");
}
else{
stackTwo.pop();
}
}
}