【數據結構】—— 2、棧和隊列

一、棧

  • 1、棧也是一種線性結構
  • 2、相比數組,隊列對應的操作是數組的子集
  • 3、只能從一端(棧頂)添加元素,也只能從這一端(棧頂)取出元素
  • 4、棧是一種後進先出的數據結構(Last In First Out【LIFO】)

棧的基本實現代碼

二、隊列

  • 1、隊列也是一種線性結構
  • 2、相比數組,隊列對應的操作是數組的子集
  • 3、只能從一端(隊尾)添加元素,只能從另一端(隊首)取出元素

出隊要讓隊列"數組" 不斷往前移動一位, O(n) 複雜度
1、數組隊列的基本實現代碼


  • 11、循環隊列引入front、tail頭尾的概念管理隊列,不用整體往前移動一位操作
    • a、初始狀態front和tail是重合在隊列開始0位置;front==tail,隊列爲空
    • b、入隊 tail++,出隊front++
      在這裏插入圖片描述
  • c、留空一個空間(浪費一下空間),下圖表示滿隊( (tail + 1) % capacity == front )
    在這裏插入圖片描述

2、循環隊列的實現代碼


參考鏈接

1、leetcode英文版網站

2、leetcode中文版網站

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