c 環形佇列

2022-09-20 09:18:09 字數 1050 閱讀 6644

上一章說到的陣列模擬佇列存在的問題,問題分析並優化

對前面的陣列模擬佇列的優化,充分利用陣列。因此將陣列看做是乙個環形的。(通過去模的方式來實現即可)

分析說明:

實現思路如下:

public class circlearrayqueue

"); _maxsize = maxsize;

_temparray = new int[_maxsize];

//front指向佇列第乙個元素

_front = 0;

//rear指向佇列的最後乙個元素的後乙個位置

_rear = 0;

}public bool isfull()

public bool isempty()

/// /// 有效資料個數

///

///

public int num()

public void enqueue(int val)

//直接插入資料

_temparray[_rear] = val;

//_rear後移一位,這裡必須考慮取模

_rear = (_rear + 1) % _maxsize;

}public int dequeue()

//這裡需要分析出front是指向佇列的第乙個元素

//1.先把front對應的值保留到乙個臨時變數

//2.將front後移

//3.將臨時儲存的變數返回

var tempval = _temparray[_front];

_front = (_front + 1) % _maxsize;

return tempval;

}public void showall()

console.writeline("顯示佇列所有內容:");

for (int i = _front; i <

C 環形佇列實現

總體思想就是不讓rear和front的值超過maxn的大小。於是就在rear和front自增時候模maxn。注意!空隊時rear等於front,滿隊時必須空乙個位置。但是size就是size,說存3個就是存3個 include using namespace std template typenam...

緩衝環形佇列

在程式的兩個模組間進行通訊的時候,緩衝區成為乙個經常使用的機制。寫入模組將資訊寫入緩衝區中,讀出模組將資訊讀出緩衝區。這樣使得 緩衝區顯然不適合下面的情況 緩衝區的設計 佇列使用環形佇列,如上圖。環形佇列的特點是,不需要進行動態的記憶體釋放和分配,使用固定大小的記憶體空間反覆使用。在實際的佇列插入和...

環形佇列設計

兩道環形佇列設計的題。leetcode 622.design circular queue leetcode 641.design circular deque 一道題是環形 queue 的設計,circular queue is also called ring buffer 另一道是環形 deq...