佇列:先進先出(fifo)或者後進後出(lilo)
;templatequeue::queue(int capacity):capacity(capacity) //初始化建構函式
templatequeue::~queue()
templatebool queue::isempty () const //判斷是否為空
templatet& queue::front() const //檢視隊首元素
templatet& queue::rear() const //檢視隊尾元素
templatevoid queue::push(const t& item) //從隊尾(rear)插入資料
else //產生回環 需要複製兩次
myfront=2*capacity-1; //把front重新歸位
myrear=capacity-1;
capacity=capacity*2;
delete myqueue; //刪除原資料
myqueue=temp; //把新指標重新賦值給muqueue
}else
myqueue[myrear]=item;
}template void queue::pop() //出佇列
#endif // __queue_h_
main函式:
#include #include "queue.h"
using namespace std;
int main()
C資料結構 優化順序佇列
如果直接復用之前的順序表,那麼在佇列的入隊和出隊操作裡,勢必會有乙個操作的時間複雜度是o n 因為發生了陣列元素的挪移操作。下面是優化後的順序佇列,其中使用了乙個頭位置和乙個尾位置來迴圈的使用陣列空間,以達到入隊和出隊的時間複雜度都是o 1 ifndef optseqqueue define opt...
資料結構順序佇列
佇列是一種特殊的 線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。順序佇列 ifndef sqqueue h define sqqueue h incl...
資料結構 順序佇列
1 佇列簡稱隊,它是一種操作受限的線性表,其限制為在標的一段進行插入,而在包的另一端進行刪除。把進行插入的一端稱為隊尾 rear 把進行刪除的一端稱作隊頭或隊首 front 向佇列中插入新元素稱為進隊或入隊,新的元素進隊後就成為新的隊尾元素 從佇列中刪除元素稱為出隊或離隊,元素出隊後,其直接後繼元素...