佇列是一種先進先出(fifo)的線性表,可以使用鍊錶或陣列進行描述。乙個佇列應該具備如下功能:
本程式使用c++構建了這樣乙個佇列,使用xcode編譯。一共由三個檔案構成。標頭檔案,函式定義檔案以及測試檔案。本程式還使用了c++異常檢查、友元函式等方法。其中,標頭檔案如下:1. 建立乙個佇列;
2. 檢查佇列是否非空;
3. 得到佇列的長度;
4. 得到新入隊的元素;
5. 得到準備出隊的元素;
6. 執行一次出隊操作;
7. 執行一次入隊操作;
8. 清空乙個佇列,並將其元素入隊至另外乙個佇列(下文稱「剪貼操作」);
9. 將乙個佇列中的所有元素入隊至另外乙個佇列,但該佇列元素不變動(下文稱「複製操作」);
函式定義檔案如下://
// queuedefine.hpp
// queue
//// created by lq on 2019/9/10.
//#ifndef queuedefine_hpp
#define queuedefine_hpp
//定義鍊錶節點
struct node
;//定義佇列(queue)類
class queuedefine
;#endif /* queuedefine_hpp */
全文完。//
// queuedefine.cpp
// queue
//// created by lq on 2019/9/10.
//#include "queuedefine.hpp"
#include using namespace std;
queuedefine::queuedefine()
queuedefine::~queuedefine()
int& queuedefine::back()
void queuedefine::pop()
void queuedefine::push(const int & element)
void queuedefine::show() const
node* temp = queue_out;
while(temp->last != queue_in)
cout測試檔案如下:(執行剪貼操作,不執行複製操作)
//// main.cpp
// queue
//// created by lq on 2019/9/10.
//#include #include "queuedefine.hpp"
using namespace std;
int main(int argc, const char * ar**) catch (const char *s)
catch (const char *s)
{cout執行結果如下:
1 2 3 4 5 6
2 3 4 5 6
element: 2 is operated
element: 3 is operated
element: 4 is operated
element: 5 is operated
element: 6 is operated
bye10 2 3 4 5 6
2 3 4 5 6
byebye
program ended with exit code: 0
資料結構 佇列 queue
佇列 就是生活中的排隊,因此排隊是先到先得,也是先離開隊伍,因此佇列也是採用的先進先出的概念 fifo,慢慢想想作業系統裡面是不是也用到fifo,自己去查吧 到底有沒有 如何能夠準確的定位是先進先出呢,因此採用的就是頭指標front和尾指標rear,通常這兩個指標是封裝成乙個鏈隊 注意front與r...
資料結構 佇列 queue
佇列 queue 是一種採用先進先出 fifo 策略的抽象資料結構,它的想法來自於生活中排隊的策略。顧客在付款結賬的時候,按照到來的先後順序排隊結賬,先來的顧客先結賬,後來的顧客後結賬。同棧的實現一樣,佇列的實現也有陣列實現和鍊錶實現兩種方式。先來看看陣列實現的方法。棧使用top變數記錄棧頂的位置,...
資料結構 佇列queue
佇列 佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列是有序集合,新新增的一端為隊尾,另一端為隊頭,當乙個元素從隊尾進入佇列時,一直...