資料結構 佇列

2021-09-23 15:41:57 字數 1630 閱讀 4677

目錄佇列

佇列與棧的區別

佇列的操作 

佇列的種類

順序佇列

鏈式佇列

迴圈佇列

雙向佇列

首先說一下,我覺得吧,越往後學資料結構,c++這種物件導向的程式設計會越來越方便清晰,所以從本節開始,我會慢慢開始用c++來寫資料結構。沒學的得學一下了。c++相容c,好學的!

上一次說了,棧是先進後出的形式,你可以把資料的存放想象成忘乙個箱子裡面放書,先放的書摞在後放的書下面,如果要取最先放進去的那本書,得依次把書取出來,這就是先進後出。

佇列是先進先出的形式,你可以把資料的存放想象成排隊買飯,先到的先買,買完就走。

依舊待補充,我先把資料結構過一遍,回來再補充吧

插入push()

彈出 pop()

判空empty()

長度size()

取隊首元素front()

佇列還是有不少型別的,不過大致劃分為

順序佇列

鏈式佇列

迴圈佇列

雙向佇列

直接開闢乙個固定的空間,往裡存就是了。上資料結構了:

class queue;
對應上面提到的各種函式,我匯集到這裡

queue::queue()

bool queue::push(int x)

cout<=0)

cout《由於我們平時使用佇列或者棧的時候,都是直接在c++的stl庫中呼叫,然後自己指定一下資料型別就可以了。

出於方便,我也寫了乙個實現這種功能的模板。用到的是c++的模板類,如果不太會,請看這裡

這個標頭檔案考慮了程式的健壯性,所以使用了c++ 的異常處理,不太會的,看這裡。

使用 #include "queue.h" 完成呼叫。需要區別於stl庫中的queue,那個是使用 #include 完成呼叫的。

// queue.h

#include#include //這個地方考慮了程式健壯性使用了異常處理。如果不會可以再看剛才那個**

using namespace std;

templateclass queue

void push(t const&);

t pop();

t front() const;

bool empty() const

int size()

};template void queue::push(t const & elem)

template t queue::pop()

t ans = elems[front];

front ++;

return ans;

}template t queue::front() const

return elems[front];

}

這個標頭檔案的測試檔案queuetest.cpp

#include "queue.h"

#include #include #include using namespace std;

int main()

cout<}catch(exception const & ex)

}

資料結構 佇列

一 佇列的迴圈陣列實現。1 初始化 空佇列。令rear front 0。2 入佇列 約定rear指向佇列尾元素的下乙個位置。入佇列時,先判斷佇列是否已滿,而後將array rear x 然後rear 3 出佇列 約定front指向佇列的首元素位置。出佇列時,先判斷佇列是否為空,而後返回隊首元素re ...

資料結構 佇列

資料參考自 資料結構c 語言描述 佇列是一種先進先出的資料結構,這與棧正好相反。下例是簡單的queue實現 queue.h檔案 ifndef queue h define queue h include include 資料元素結構 自定義 struct datatype 佇列元素最大數 const...

資料結構 佇列

code for fun created by dream whui 2015 1 25 include stdafx.h include include using namespace std define true 1 define false 0 define ok 1 define erro...