力扣 設計迴圈佇列

2021-10-01 16:51:57 字數 2054 閱讀 1186

設計你的迴圈佇列實現。 迴圈佇列是一種線性資料結構,其操作表現基於 fifo(先進先出)原則並且隊尾被連線在隊首之後以形成乙個迴圈。它也被稱為「環形緩衝器」。

迴圈佇列的乙個好處是我們可以利用這個佇列之前用過的空間。在乙個普通佇列裡,一旦乙個佇列滿了,我們就不能插入下乙個元素,即使在佇列前面仍有空間。但是使用迴圈佇列,我們能使用這些空間去儲存新的值。

你的實現應該支援如下操作:

示例:

mycircularqueue circularqueue = new mycircularqueue(3); // 設定長度為 3

circularqueue.enqueue(1); // 返回 true

circularqueue.enqueue(2); // 返回 true

circularqueue.enqueue(3); // 返回 true

circularqueue.enqueue(4); // 返回 false,佇列已滿

circularqueue.rear(); // 返回 3

circularqueue.isfull(); // 返回 true

circularqueue.dequeue(); // 返回 true

circularqueue.enqueue(4); // 返回 true

circularqueue.rear(); // 返回 4

class

mycircularqueue

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

bool

enqueue

(int value)if(

isempty()

) tail =

(tail +1)

% size;

data[tail]

= value;

return

true;}

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

bool

dequeue()

if(head == tail)

head =

(head +1)

% size;

return

true;}

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

intfront()

return data[head];}

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

intrear()

return data[tail];}

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

bool

isempty()

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

bool

isfull()

};/** * your mycircularqueue object will be instantiated and called as such:

* mycircularqueue* obj = new mycircularqueue(k);

* bool param_1 = obj->enqueue(value);

* bool param_2 = obj->dequeue();

* int param_3 = obj->front();

* int param_4 = obj->rear();

* bool param_5 = obj->isempty();

* bool param_6 = obj->isfull();

*/

力扣 探索佇列 設計迴圈佇列

題目鏈結 題目描述 設計你的迴圈佇列實現。迴圈佇列是一種線性資料結構,其操作表現基於 fifo 先進先出 原則並且隊尾被連線在隊首之後以形成乙個迴圈。它也被稱為 環形緩 衝器 迴圈佇列的乙個好處是我們可以利用這個佇列之前用過的空間。在乙個普通佇列裡,一旦乙個佇列滿了,我們就不能插入下乙個元素,即使在...

力扣 622 設計迴圈佇列

設計你的迴圈佇列實現。迴圈佇列是一種線性資料結構,其操作表現基於 fifo 先進先出 原則並且隊尾被連線在隊首之後以形成乙個迴圈。它也被稱為 環形緩衝器 迴圈佇列的乙個好處是我們可以利用這個佇列之前用過的空間。在乙個普通佇列裡,一旦乙個佇列滿了,我們就不能插入下乙個元素,即使在佇列前面仍有空間。但是...

OJ題 設計迴圈佇列 力扣

題目 思路 不是每次都進行數字搬移 直到後面沒空間了再一次性搬移到前面 陣列中實現對列 class mycircularqueue insert an element into the circular queue.return true if the operation is successful...