主程式 main.cpp
//written by xuebi
//順序佇列,先進先出,後進後出(迴圈),區別與上一文章先進後出,後進先出,而且引入了迴圈概念
#include #include "my_stack.h"
using namespace std;
int main()
;template//stack類的建構函式
mystack::mystack(int stacksize):size(stacksize)
template//stack的析構函式
mystack::~mystack()
templatebool mystack::isempty()const
templatet&mystack::f_front()const
else
delete stack;
stack=a;
rear=size-2;//rear位置,原本未擴充前stack陣列含有size-1個資料(front留空)
front=2*size-1;//front位置
size=2*size;
}else//佇列沒滿直接新增資料
}#endif //my_stack-h```
佇列已滿的情況
f:front
r:rear
情況1|空-f|a|b|c-r|
|a|b|c-r|空_f|
情況1可以從front+1開始完整拷貝
情況2|c-r| 空-f |a|b|
|b|c-r|空-f|a|
情況2要分段拷貝
擴大陣列再拷貝後得到
|a|b|c-r|空|空|空|空|空-f|
佇列未滿,可以繼續新增元素
記得點讚哦
-
迴圈佇列 順序佇列(C )
佇列 queue 是一種限定訪問位置的線性變。他允許在表的一端插入,在另一端刪除。這個和計算機排程策略中的先來先服務fcfs first come first served 是一樣的。佇列中可以插入的一端為隊尾 rear 允許刪除的一端稱為隊頭 front 佇列也分為兩種,一種是用陣列的儲存表示,一...
C 迴圈順序佇列
顧名思義 採用順序結構存放的佇列稱為順序佇列 迴圈順序佇列可以避免佇列的假溢位現象的發生。如下圖示,迴圈佇列的幾種特殊情況。學習完順序迴圈佇列個人感覺應該注意的事項 front rear只是表示在base i 這個順序表中的索引值,而不是記憶體的絕對位址,這樣也才在後面的迴圈的時候處理起來比較方便 ...
C語言順序佇列
順序佇列是一種只能在一頭進和另一頭出的資料結構,所以結構體裡設2個指標分別指向頭部和尾部,用陣列來儲存資料。1 define maxsize 1024 23 typedef int elemtype 45 typedef struct sequenqueuesequenqueue 1011 sequ...