622 設計迴圈佇列

2021-09-24 02:21:53 字數 1495 閱讀 4548

設計迴圈鍊錶,使用陣列。這裡判斷迴圈佇列滿的條件為(tail+1)%n==head,tail指向的位置不儲存元素,所以這裡講實際的空間加了1。

class

mycircularqueue

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

bool

enqueue

(int value)

item[tail]

=value;

tail=

(tail+1)

%n;return

true;}

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

bool

dequeue()

head=

(head+1)

%n;return

true;}

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

intfront()

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

intrear()

else

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

bool

isempty()

else

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

bool

isfull()

else

}int

*item;

int n;

int head,tail;};

/** * 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();

*/

執行用時 : 44 ms, 在design circular queue的c++提交中擊敗了95.48% 的使用者

記憶體消耗 : 16.7 mb, 在design circular queue的c++提交中擊敗了48.42% 的使用者

迴圈佇列 622 設計迴圈佇列

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

622 設計迴圈佇列

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

622 設計迴圈佇列

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