目錄佇列
佇列與棧的區別
佇列的操作
佇列的種類
順序佇列
鏈式佇列
迴圈佇列
雙向佇列
首先說一下,我覺得吧,越往後學資料結構,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...