兩個棧實現一個隊列的添加、刪除功能

棧的特點是“先進後出”,隊列的特點是“先進先出”;向隊列中依次添加元素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();
        }     
     }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章