算法設計系列-02

題目

使用棧來實現隊列的功能

思路分析

隊列的特點是先進先出, 棧的特點是先進後出, 要想用棧來實現先進先出, 我們只要將數據從棧中依次彈出並壓入另一個棧, 此時彈出的順序就是壓入的順序了, 就像隊列一樣, 如圖所示:

算法設計系列-02

要想實現的話, 必須滿足以下兩點:

  1. 如果要從兩個棧之間導數據, 必須一次性將stackPush中的數據全部壓入stackPop中, 否則順序顯然與先進先出不一致
  2. 當stackPop棧不為空時, 不能向其壓入數據, 否則就像插隊一樣, 不滿足先進先出

那麼, 現在的問題時, 什麼時候將數據壓入stackPop棧中呢? 顯然, 只要滿足以上兩點, 什麼時候處理數據都可以, 下面提供一個Java代碼的簡單是實現, 隨便看看就行:

算法設計系列-02


分享到:


相關文章: