佇列(queue)是只允許在一端進行插入,而在另一端進行刪除的運算受限的線性表
(1)允許刪除的一端稱為隊頭(front)。
(2)允許插入的一端稱為隊尾(rear)。
(3)當佇列中沒有元素時稱為空佇列。
(4)佇列亦稱作先進先出(first in first out)的線性表,簡稱為fifo表。
佇列的修改是依先進先出的原則進行的。新來的成員總是加入隊尾(即不允許"加塞"),每次離開的成員總是佇列頭上的(不允許中途離隊),即當前"最老的"成員離隊。
佇列定義如下:
#ifndef linkedqueue
#define linkedqueue
#include using std::ostream;
template class linkedqueue
node(const t &value,node *node = nullptr) : data(value),next(node)
};node *front;//頭
node *rear;//尾
public:
linkedqueue() : front(nullptr),rear(nullptr)
~linkedqueue()
void makeempty()//佇列清空 }
bool enqueue(const t &value)//進隊
else
}bool dequeue(t &x)//出隊
else
}bool isempty() const
bool getfront(t &x)
else
}int size()
return k;
} friend ostream & operator<
return out;
}};#endif
測試**如下:
基本資料結構 佇列
佇列實現的是一種先進先出 first in,first out,fifio 的策略,佇列中的插入的操作稱為入隊 enqueue 佇列的刪除操作稱為出隊 dequeue 定義乙個陣列來實現佇列 public class queue public queue int n public boolean i...
基本資料結構 佇列(queue)
像棧一樣,佇列 queue 也是一種線性表,它的特性是先進先出,插入在一端,刪除在另一端。就像排隊一樣,剛來的人入隊 push 要排在隊尾 rear 每次出隊 pop 的都是隊首 front 的人。如圖1,描述了乙個佇列模型。和棧一樣,佇列也有陣列實現和鍊錶實現兩種,兩種實現都能給出快速的o 1 執...
(三)基本資料結構 佇列
三 具體 實現 陣列佇列的實現 佇列作為最常見的資料結構之一,其作用不言而喻。我將自定義乙個佇列的類,該佇列是基礎之前所學習的動態陣列實現的。本文實現了陣列佇列與迴圈佇列兩種資料結構。由於棧是fifo first in first out 型別,則棧的增刪只存在入隊enqueue 和出隊dequeu...