佇列 先入先出的資料結構

2021-09-12 10:40:47 字數 1260 閱讀 4045

目的:

理解 fifo 和佇列的定義;

能夠自己實現佇列;

熟悉內建佇列結構;

使用佇列來解決簡單的問題。

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

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

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

mycircularqueue(k): 構造器,設定佇列長度為 k 。

front: 從隊首獲取元素。如果隊列為空,返回 -1 。

rear: 獲取隊尾元素。如果隊列為空,返回 -1 。

enqueue(value): 向迴圈佇列插入乙個元素。如果成功插入則返回真。

dequeue(): 從迴圈佇列中刪除乙個元素。如果成功刪除則返回真。

isempty(): 檢查迴圈佇列是否為空。

isfull(): 檢查迴圈佇列是否已滿。

class mycircularqueue 

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

bool enqueue(int value)

rear = (rear+1) % size;

data[rear] = value;

return true;

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

bool dequeue()

front = (front+1) % size;

return true;

}int front()

int rear()

bool isempty()

bool isfull()

};

內建佇列庫常見操作:

queueq;

q.push();

q.pop();

q.empty();

q.front();

q.back();

q.size();

FIFOQueue 先入先出的佇列

在使用迴圈神經網路時,希望讀入的訓練樣本是有序的,就要用到fifoqueue 先建立乙個先入先出的佇列,初始化佇列插入0.1,0.2,0.3三個數字 q tf.fifoqueue 3,tf.float32 init q.enqueue many 0.1,0.2,0.3 定義出隊,1,入隊操作 x q...

JAVA資料結構 先進先出佇列

佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。下面直接來看實現 先進先出佇列 author white version id myqu...

八 資料結構 線性表 佇列(先進先出)

1 佇列是先進先出,棧是後進先出。2 佇列的操作還是入佇列和出佇列,入佇列就把資料放到佇列的尾部,出佇列就把佇列中的第乙個資料拿出來。佇列需要兩個標識,top和tail,分別標識佇列的第乙個元素和最後乙個元素的下一位置,方便佇列的操作 3 以下是佇列的基本操作 說明 佇列的尾指標並不是指向佇列的最後...