設計實現雙端佇列。
你的實現需要支援以下操作:
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...