設計實現雙端佇列。
你的實現需要支援以下操作:
mycirculardeque(k):建構函式,雙端佇列的大小為k。
insertfront():將乙個元素新增到雙端佇列頭部。 如果操作成功返回 true。
insertlast():將乙個元素新增到雙端佇列尾部。如果操作成功返回 true。
deletefront():從雙端佇列頭部刪除乙個元素。 如果操作成功返回 true。
deletelast():從雙端佇列尾部刪除乙個元素。如果操作成功返回 true。
getfront():從雙端佇列頭部獲得乙個元素。如果雙端隊列為空,返回 -1。
getrear():獲得雙端佇列的最後乙個元素。 如果雙端隊列為空,返回 -1。
isempty():檢查雙端佇列是否為空。
isfull():檢查雙端佇列是否滿了。
示例:
mycirculardeque circulardeque = new mycirculardeque(3); // 設定容量大小為3
circulardeque.insertlast(1); // 返回 true
circulardeque.insertlast(2); // 返回 true
circulardeque.insertfront(3); // 返回 true
circulardeque.insertfront(4); // 已經滿了,返回 false
circulardeque.getrear(); // 返回 2
circulardeque.isfull(); // 返回 true
circulardeque.deletelast(); // 返回 true
circulardeque.insertfront(4); // 返回 true
circulardeque.getfront(); // 返回 4
所有值的範圍為 [1, 1000]
操作次數的範圍為 [1, 1000]
請不要使用內建的雙端佇列庫。
public class mycirculardeque
private int pfront;
private int prear;
public int length
/** initialize your data structure here. set the size of the deque to be k. */
public mycirculardeque(int k)
/** adds an item at the front of deque. return true if the operation is successful. */
public bool insertfront(int value)
/** adds an item at the rear of deque. return true if the operation is successful. */
public bool insertlast(int value)
/** deletes an item from the front of deque. return true if the operation is successful. */
public bool deletefront()
/** deletes an item from the rear of deque. return true if the operation is successful. */
public bool deletelast()
/** get the front item from the deque. */
public int getfront()
/** get the last item from the deque. */
public int getrear()
/** checks whether the circular deque is empty or not. */
public bool isempty()
/** checks whether the circular deque is full or not. */
public bool isfull()
}/** * your mycirculardeque object will be instantiated and called as such:
* mycirculardeque obj = new mycirculardeque(k);
* bool param_1 = obj.insertfront(value);
* bool param_2 = obj.insertlast(value);
* bool param_3 = obj.deletefront();
* bool param_4 = obj.deletelast();
* int param_5 = obj.getfront();
* int param_6 = obj.getrear();
* bool param_7 = obj.isempty();
* bool param_8 = obj.isfull();
*/
模仿課上迴圈佇列的實現方式,設計兩個標記頭部和尾部的int,起指標的作用。
設計迴圈雙端佇列
題目描述 設計實現雙端佇列。你的實現需要支援以下操作 mycirculardeque k 建構函式,雙端佇列的大小為k。insertfront 將乙個元素新增到雙端佇列頭部。如果操作成功返回 true。insertlast 將乙個元素新增到雙端佇列尾部。如果操作成功返回 true。deletefro...
設計迴圈雙端佇列
眾所周知,佇列是先進先出,隊尾進,隊頭出 那麼怎麼來實現雙端迴圈佇列呢?我們知道實現迴圈佇列中比較難的地方隊尾進,隊頭出在於怎麼讓rear 1就到陣列的front 或者 出隊的時候怎麼讓front到front 我們可以這樣 rear rear 1 length或者front front 1 leng...
C語言設計迴圈雙端佇列
題目描述你的實現需要支援以下操作 mycirculardeque k 建構函式,雙端佇列的大小為k。insertfront 將乙個元素新增到雙端佇列頭部。如果操作成功返回 true。insertlast 將乙個元素新增到雙端佇列尾部。如果操作成功返回 true。deletefront 從雙端佇列頭部...