C 佇列及其操作

2021-08-04 21:39:52 字數 666 閱讀 8146

佇列(queue)也是一種限定訪問位置的線性表。它只允許在表的一端插入,而在另一端刪除。

允許插入的一端稱為隊尾(rear),允許刪除的一端叫做隊頭(front)。每次在隊尾加入新元素,加入稱為進隊,刪除稱為出隊。(檢視動畫演示)

佇列的這種特性正好與棧相反,叫做先進先出(fifo,first in first out)。

空隊時指標(下標)front和rear在一起都指向隊前方,當有元素進隊,則rear後移;有元素出隊,則front後移,最後,開始時分配給隊的前端不再被利用。(檢視動畫演示)

為了充分利用佇列,順序佇列總是做成乙個邏輯上的迴圈佇列。

注意:空隊時rear等於front,滿隊時必須空乙個位置。

templateclass queue

bool isempty() const //判隊空

bool isfull() const //判隊滿

int length() const  //求隊中元素數,注意求餘演算法

void enque(const t &data); //進隊

t deque(); //出隊

t getfront(); //取隊頭資料

void makeempty()//隊置空(初始態)

};更詳細的**參見【例7.10】。

鏈佇列類模板示例:請參見【例7.11】。

順序佇列及其操作

問題 今天累了,沒心情寫,但我知道路漫漫,還是要堅持,要進步。順序佇列比較簡單,明白原理就行。注 判斷隊列為空的條件 squeue front squeue rear include include using namespace std define maxsize 20 typedef stru...

鏈佇列及其操作

問題 跟之前想的不一樣,以為就是個鍊錶,結果實現時就出問題了。lqueue rear要不斷的後移 因此,每次入隊的時候要找到lqueue rear,因此每次入隊是要後移lqueue rear。include include using namespace std typedef struct lin...

鏈佇列及其操作

問題 跟之前想的不一樣,以為就是個鍊錶,結果實現時就出問題了。lqueue rear要不斷的後移 因此,每次入隊的時候要找到lqueue rear,因此每次入隊是要後移lqueue rear。include include using namespace std typedef struct lin...