C 資料結構 9 順序佇列

2021-08-28 23:19:34 字數 1016 閱讀 5840

佇列:先進先出(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 向佇列中插入新元素稱為進隊或入隊,新的元素進隊後就成為新的隊尾元素 從佇列中刪除元素稱為出隊或離隊,元素出隊後,其直接後繼元素...