leetcode探索佇列和棧(一)

2021-09-18 01:37:16 字數 1164 閱讀 3309

對於佇列,我們可以使用動態陣列和指向佇列頭部的索引來實現,當佇列資料較多時,陣列的容量要求較大,一種比較好的改進方法使用陣列實現迴圈佇列。

我們來看一下leetcode給出的演示:

可以得出:

佇列滿時:(tail+1)%length == head       length為長度

隊列為空:head==tail 

迴圈佇列的方法:

**:

class mycircularqueue 

/** insert an element into the circular queue. return true if the operation is successful. */

public boolean enqueue(int value) else

}/** delete an element from the circular queue. return true if the operation is successful. */

public boolean dequeue()

head = (head+1)%length;

return true;

}/** get the front item from the queue. */

public int front()

return arr[head];

}/** get the last item from the queue. */

public int rear()

return arr[(tail-1+length)%length];//

}/** checks whether the circular queue is empty or not. */

public boolean isempty()

/** checks whether the circular queue is full or not. */

public boolean isfull()

}

參考:

leetcode 探索 佇列與棧 島嶼數量

給你乙個由 1 陸地 和 0 水 組成的的二維網格,請你計算網格中島嶼的數量。島嶼總是被水包圍,並且每座島嶼只能由水平方向或豎直方向上相鄰的陸地連線形成。此外,你可以假設該網格的四條邊均被水包圍。示例 1 輸入 11110 11010 11000 00000 輸出 1 示例 2 輸入 11000 1...

leetcode 棧和佇列

20.有效的括號 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 true 示例 3 輸入 輸出 false 示例 4 輸入 輸出 false ...

LeetCode棧和佇列

棧和佇列 棧是限定僅在表尾進行插入和刪除操作的後進先出 lifo 的線性表 佇列是只允許在表的一端進行插入,在另一端刪除元素的先進先出 fifo 的線性表 225.用佇列實現棧 使用佇列實現棧的下列操作 注意 思路 為了滿足棧的特性,即最 棧的元素最先出棧,在使用佇列實現棧時,應滿足佇列前端的元素是...