資料結構學習 1 設計迴圈佇列

2021-10-01 19:52:32 字數 1874 閱讀 6567

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

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

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

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

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

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

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

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

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

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

示例:

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. */

public boolean enqueue(int value)

count[tail] = value;

tail = (tail + 1)%length;

return true;

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

public boolean dequeue()

head = (head + 1)%length;

return true;

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

public int front()

return count[head];

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

public int rear()

return count[(tail-1+length)%length];

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

public boolean isempty()

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

public boolean isfull()

}

一道基礎題,考察佇列的理解和迴圈概念。

資料結構學習之路之迴圈佇列

佇列是一種先進先出的線性表,他只允許在表的一端進行插入元素,在另一端刪除元素。typedef struct sqqueuesqqueue 空隊 q.front q.rear 入隊 q.base rear x 出隊 x q.base front 存在的問題 設陣列的大小為m front 0 rear ...

資料結構學習 佇列

定義 佇列 queue 是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。佇列是一種先進先出的 first in first out 的線性表,簡稱fifo。允許插入的一端為隊尾,允許刪除的一端為隊頭。佇列不允許在中間部位進行操作!假設佇列是q a1,a2,an 那麼a1就是隊頭元素,而a...

資料結構學習 1

傳統中,資料結構一般分為 邏輯結構 和 物理結構 邏輯結構 是指資料物件中資料元素的相互關係 物理結構 是指資料的邏輯結構在計算機中的儲存形式 集合結構 集合機構中的資料元素除了同屬於乙個集合外,並沒有別的關係 線性結構 線性結構中的資料元素之間是屬於一對一的關係 樹形結構 樹形結構中的資料元素存在...