資料結構與演算法之設計迴圈雙端佇列

2021-10-04 12:31:29 字數 1286 閱讀 8185

設計實現雙端佇列。

你的實現需要支援以下操作:

mycirculardeque(k):建構函式,雙端佇列的大小為k。

insertfront():將乙個元素新增到雙端佇列頭部。 如果操作成功返回 true。

insertlast():將乙個元素新增到雙端佇列尾部。如果操作成功返回 true。

deletefront():從雙端佇列頭部刪除乙個元素。 如果操作成功返回 true。

deletelast():從雙端佇列尾部刪除乙個元素。如果操作成功返回 true。

getfront():從雙端佇列頭部獲得乙個元素。如果雙端隊列為空,返回 -1。

getrear():獲得雙端佇列的最後乙個元素。 如果雙端隊列為空,返回 -1。

isempty():檢查雙端佇列是否為空。

isfull():檢查雙端佇列是否滿了。

示例:

```csharp

資料結構與演算法 雙端佇列

雙端佇列和普通佇列不同的地方是既可以隊首和隊尾進行插入,同時也就可以從隊首和隊尾進行remove刪除 同時不遵循先進先出或者先進後出的規則,這需要通過具體的演算法實現來確定,這個資料結構的實現過程如下 class deque def init self self.items defisempty s...

leetcode專題之佇列 設計迴圈雙端佇列

class mycirculardeque object def init self,k 長度為k時占用k 1的空間,多出來的空間用來區分isempty和isfull 首尾兩個指標相等的時候為empty,尾部 1等於首部的時候為full self.q 0 k 1 self.len k 1 self....

c 資料結構 雙端(迴圈)佇列

雙端佇列 相比迴圈佇列來說,既可以取隊頭元素,又可以取隊尾元素 可以從隊頭出隊,也可以從隊頭進隊 可以從隊尾進隊,也可以從隊尾出隊。1.迴圈佇列 seqqueue.h include includeusing namespace std class seqqueue 析構函式 bool enqueu...