一、棧
- 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 )