j劍指offer之兩個棧實現隊列

在這裏插入圖片描述

/**
	   * 面試題7:兩個棧實現隊列
	   * 實現:stack1Ofadd,stack2OfDelete,用先進後出實現先進先出
	   *   隊列新增:向stack1Ofadd插入,
	   *   隊列刪除:刪除之前先判斷stack2OfDelete是否爲空,
	   *   若爲空則將stack1Ofadd的數據全部​導入再刪除
	   */
	  Stack<Integer> stack1 = new Stack<>();
	  Stack<Integer> stack2 = new Stack<>();
	  // 向隊列添加元素
	  public void  appendTail(int element){
	    // 棧1作爲添加的棧
	    stack1.push(element);
	  }
	  // 刪除隊列尾部元素
	  public Integer deleteHead(){
	    if(stack2.empty()){
	      // 若棧2爲空則把棧1的元素全部添加進棧2
	      while(!stack1.empty()){
	        stack2.push(stack1.pop());
	      }
	    }
	    // 執行刪除任務
	    if(stack2.empty()){
	      return null;
	    } else {
	      return stack2.pop();
	    }
	  }```

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章