雙端佇列:相比迴圈佇列來說,既可以取隊頭元素,又可以取隊尾元素;可以從隊頭出隊,也可以從隊頭進隊;可以從隊尾進隊,也可以從隊尾出隊。
1.迴圈佇列(seqqueue.h):
# include# includeusing namespace std;
class seqqueue //析構函式
bool enqueue(const int& x); //進隊函式
bool dequeue(int& x); //出隊函式
void makeempty() //把隊置空
bool isempty() //判斷隊空
bool isfull() //判斷隊滿
int getsize() //求隊中元素個數
int& getfront() //取隊頭下標
int& getrear() //取隊尾下標
int& getmaxsize() //取maxsize
int*& getelements( ) //取陣列指標
};seqqueue::seqqueue(int sz):rear(0),front(0),maxsize(sz)
bool seqqueue::enqueue(const int& x)
bool seqqueue::dequeue(int& x)
2.雙端佇列(seqdeque.h):繼承了seqqueue類
# include"seqqueue.h"
# includeusing namespace std;
class seqdeque:public seqqueue //建構函式:呼叫了seqqueue的建構函式
~seqdeque()
bool gettail(int& x); //新增取隊尾函式
bool enqueuehead(const int& x); //新增從隊頭進隊函式
bool dequeuetail(int& x); //新增從隊尾出隊函式
5.心得:
問題主要出在:
派生類建構函式的實現方法(建構函式是不能被繼承的)。
還有既然是為了減少**的重複使用,那麼在派生類中基類已經存在的資料成員和功能相同的函式成員就不要再出現了,它們本來就是屬於派生類的,雖然派生類中沒寫出。
在注意訪問許可權的同時可直接被派生類物件呼叫。
資料結構 佇列 雙端佇列
佇列 queue 是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。佇列是一種先進先出 first in first out 的線性表,簡稱fifo。允許插入的一端為隊尾,允許刪除的一端為對頭。佇列不允許在中間部位進行操作。假設佇列是q 那麼a1就是對頭元素,而an是隊尾元素。這樣我們就可...
資料結構之雙端佇列
摘要 有時候乙個佇列可能需要能從兩端進出,這時候稱呼它為雙端佇列。具體思路很簡單,從 可以直接看出來。include stdafx.h include malloc.h include stdlib.h typedef struct dequeuerecord queue struct dequeu...
python資料結構 雙端佇列
deque,全名double ended queue 佇列和棧的性質的資料結構 雙端佇列中的元素可以從兩端彈出,其限定插入和刪除操作在表的兩端進行。雙端佇列可以在佇列任意一端入隊和出隊。usr bin env python coding utf 8 created by xuehz on 2017 ...