C 資料結構之Queue(佇列)

2022-04-03 19:28:42 字數 1557 閱讀 3991

queue,佇列,和我們日常生活中的佇列是同樣的規則,「先進先出」,從尾入,從首出。

有外加的一些操作如 full(佇列是否已滿),serve_and_retrieve(檢視隊首元素同時去除)等等。

**(在eclipse執行通過):

.h標頭檔案

/*

* queue.h

* * created on: 2023年8月22日

* author: administrator

*/#ifndef queue_h_

#define queue_h_

enum error_code ;

typedef int queue_entry;

const int maxqueue = 2;

class queue

;#endif /* queue_h_ */

.cpp類實現檔案

/*

* queue.cpp

* * created on: 2023年8月22日

* author: administrator

*/#include "queue.h"

queue::queue()

bool queue::empty()const

}error_code queue::serve()

}error_code queue::retrieve(queue_entry &item)const

}bool queue::full()const

int queue::size()const

void queue::clear()

error_code queue::serve_and_retrieve(queue_entry &item)

}

main主函式測試檔案

/*

* main.cpp

* * created on: 2023年8月23日

* author: 呂奉先

*/#include "queue.h"

#include using namespace std;

void introduction();

char get_command();

bool do_command(char command, queue &test_queue);

int main()

void introduction()

break;

case'q':

cout<<"queue demonstration finished."

break;

case'h':

help();

break;

} return continue_input;

}

這裡有兩個很有趣的函式,get_command 和 do_command,能夠不斷讀取指令輸入並實時執行結果,很有用。

資料結構之佇列(Queue)

佇列,顧名思義,也就是一條隊伍,進入隊伍的時候,只能從隊尾排隊,離開隊伍的時候,只能從隊首離開。佇列也有陣列實現和鏈式實現。用一般陣列實現佇列的時候,入隊,則在隊尾插入乙個元素,出隊,則將隊首的元素出隊。那麼,由於陣列的長度是固定的,入隊只能從隊尾入隊,因此經常性的出隊會使得隊首越來越靠近隊尾,隊首...

資料結構之佇列 Queue

之前總結過棧相關的知識,佇列可以模擬棧來看。棧只能在一端進行操作 棧頂 新增元素或者刪除等都只能在棧頂 而佇列有兩端可以操作,在一端新增元素,在另一端刪除元素。我們把新增元素的一端稱為隊尾 刪除元素的一端稱為隊首。比如生活中的排隊 城市中基本 都有,這就是乙個佇列。在隊伍最前面就是隊首,也是最先完成...

python資料結構之佇列(queue)

佇列是一種特殊的線性表,先進先出,只允許在前端進行刪除,在後端進行插入操作,它的操作方式與堆疊類似,區別在於佇列只允許在後端插入資料。在python中有相應的類 import queue q queue.queue for i in range 4 q.put i 將乙個值放入佇列中 while n...