程式設計師成長之旅 設計迴圈佇列

2021-09-25 15:19:25 字數 2154 閱讀 8117

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

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

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

這道題我是用c語言實現的,這道題只要注意到不要越界和k相關的問題,就可以完美的做出來了。

typedef

struct

mycircularqueue;

/** initialize your data structure here. set the size of the queue to be k. */

mycircularqueue*

mycircularqueuecreate

(int k)

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

bool mycircularqueueisempty

(mycircularqueue* obj)

return false;

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

bool mycircularqueueisfull

(mycircularqueue* obj)

return false;

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

bool mycircularqueueenqueue

(mycircularqueue* obj,

int value)

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

bool mycircularqueuedequeue

(mycircularqueue* obj)

++obj->front;

obj->front =

(obj->front)

%(obj->n)

;return true;

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

intmycircularqueuefront

(mycircularqueue* obj)

else

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

intmycircularqueuerear

(mycircularqueue* obj)

if(obj->_rear ==0)

else

}void

mycircularqueuefree

(mycircularqueue* obj)

/** * your mycircularqueue struct will be instantiated and called as such:

* mycircularqueue* obj = mycircularqueuecreate(k);

* bool param_1 = mycircularqueueenqueue(obj, value);

* bool param_2 = mycircularqueuedequeue(obj);

* int param_3 = mycircularqueuefront(obj);

* int param_4 = mycircularqueuerear(obj);

* bool param_5 = mycircularqueueisempty(obj);

* bool param_6 = mycircularqueueisfull(obj);

* mycircularqueuefree(obj);

*/

程式設計師成長之旅 C語言分支迴圈語句(初階)

分支語句 選擇結構 迴圈語句 for迴圈 goto語句 分支語句 迴圈語句 什麼是語句?c語言中用乙個 隔開的就是乙個語句 printf hello sum a b 如果你不好好學習,你將找不到工作。這就是選擇!if語句 if 表示式 語句 if 表示式 語句1 else 語句2 多分支 if 表示...

程式設計師成長之旅 順序表

執行效果 靜態順序表是只適用於我們已經了解到需要存多少資料,而一般我們都是用動態順序表,下面我給大家展示一下我所實現的動態順序表的 seqlist.h define crt secure no warnings 1 pragma once include include include includ...

程式設計師成長之旅 二分查詢

最終 溢位問題在迴圈體中,一般計算中間值middle時所用的是 middle left right 2 但是這種情況容易溢位,因為一旦left right超過所在型別的範圍的話,就會出現錯誤,為了不出現這種問題,我們引入了 middle left right left 2 邊界問題 迴圈體外的初始化...