演算法(9)佇列

2021-08-13 16:26:21 字數 1450 閱讀 9521

佇列是一種先進先出(first in first out)的資料結構,重要的元素有 頭,尾, 佇列長度。佇列的操作基本有四種,

驗空(isempty),驗滿(isfull),出隊(dequeue),入隊(enqueue)。

實現佇列有兩種方法,陣列和鍊錶。這裡陣列的程式是我自己寫的,鍊錶的則是參考《c++ primer plus》六版p471上的**。

關於用陣列實現佇列,可以將陣列想象成乙個首尾相接的環,head和tail之間的為佇列,佇列在這個環上移動。

用陣列實現的**如下:

#include using namespace std;

class queue

;/**************************** 以下為類的實現****************************/

queue::queue(int _len=10)

queue::~queue()

bool queue::isfull() const

bool queue::isempty() const

bool queue::enqueue(int x)

}bool queue::dequeue(int &x)

}void queue::show() const

; enum

; node *head;

node *tail;

int items; //佇列內現有元素的個數

const int qsize;//佇列的最大長度

queue(const queue &q):qsize(0)

//預設構造長度為0

queue & operator=(const queue & q) //過載=這個運算子

public:

queue(int qs=q_size);

~queue();

bool isempty() const;

bool isfull() const;

int queuecount() const;

bool enqueue(const int & item);

bool dequeue(int &item);

};/**************************** 以下為類的實現****************************/

queue::queue(int qs):qsize(qs)

queue::~queue()

}bool queue::isempty() const

bool queue::isfull() const

int queue::queuecount() const

bool queue::enqueue(const int &item)

bool queue::dequeue(int &item)

選擇判斷 作業9 佇列及其應用

筆記 鏈佇列迴圈佇列 判斷題 所謂 迴圈佇列 是指用單向迴圈鍊錶或者迴圈陣列表示的佇列。f在用陣列表示的迴圈佇列中,front值一定小於等於rear值。f不論是入佇列操作還是入棧操作,在順序儲存結構上都需要考慮 溢位 情況。t 選擇題為解決計算機主機與印表機之間速度不匹配問題,通常設定乙個列印資料緩...

演算法8 佇列及其實現

和上一部分關於棧的部分一樣,不講基本知識,直接實現,走你!佇列和棧相似,也包括一些基本的佇列的操作,初始化,出佇列,入佇列,判空,判滿,清空等操作。1 include 2 include 3 include 45 define queuelen 15 67 typedef struct 8data ...

03 佇列操作

時間限制 100ms 記憶體限制 100kb 描述假設以帶頭節點的迴圈鍊錶表示佇列,並且只設乙個指標指向隊尾元素節點 不設頭指標 節點元素這裡設為整型,編寫佇列的初始化 入隊和出隊演算法。其中入隊元素個數n及其節點資料,和出隊元素個數m都是從鍵盤輸入 預設n m都不小於0 然後輸出出隊元素,出隊不合...