設計你的迴圈佇列實現。 迴圈佇列是一種線性資料結構,其操作表現基於 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 邊界問題 迴圈體外的初始化...