算法:(四)棧和隊列

(一)棧和隊列的基本性質數組

  • 棧是先進後出
  • 隊列是先進先出
  • 棧和隊列在實現結構上能夠有數組和鏈表兩種形式
    • 數組結構實現較容易
    • 用鏈表結構較複雜,由於牽扯不少指針操做

(二)隊列和棧的基本操做spa

  • pop操做(棧尾彈出一個元素)
  • push操做(棧/隊列尾加入一個元素)
  • shift操做(隊頭彈出一個元素)
  • 棧和隊列的基本操做,都是時間複雜度都爲O(1)的操做

(三)深度優先遍歷(DFS)和寬度優先遍歷(BFS)指針

  • 深度優先遍歷能夠用棧實現
  • 寬度優先遍歷能夠用隊列實現

(四)雙端隊列和優先級隊列隊列

  • 雙端隊列首尾均可以壓入和彈出元素
  • 優先級隊列可根據元素的優先級值,決定元素的彈出元素
  • 優先級隊列的結構爲堆結構,並非線性結構
相關文章
相關標籤/搜索