顧名思義:採用順序結構存放的佇列稱為順序佇列
迴圈順序佇列可以避免佇列的假溢位現象的發生。如下圖示,迴圈佇列的幾種特殊情況。
學習完順序迴圈佇列個人感覺應該注意的事項:
front、rear只是表示在base[i]這個順序表中的索引值,而不是記憶體的絕對位址,這樣也才在後面的迴圈的時候處理起來比較方便
佇列迴圈的關鍵
下面是個人的迴圈佇列操作工程檔案:
///
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
////
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
#ifndef myhead_h
#define myhead_h
#include"myhead.h"
#endif
#include
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
//迴圈順序佇列資料結構c++類宣告(基類)
template class sqqueue
;///
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
////////
//迴圈順序佇列資料結構c++類實現(基類)
template void sqqueue::clear()
template status sqqueue::dequeue(elemtype & e)
template status sqqueue::enqueue(elemtype &e)
template status sqqueue::getfront(elemtype & e)
template int sqqueue::getlength()
template bool sqqueue::isempty()
template bool sqqueue::isfull()
///////系統建構函式及析構函式的實現
template sqqueue::sqqueue(int size)
templatesqqueue::~sqqueue()
templatesqqueue::sqqueue(const sqqueue& otherq)
}templatevoid sqqueue::display()
cout<6)<
for (int i = 0; i < n-1; i++)
cout<6)<
<6)<
for (int i = 0; i < n-1; i++)
cout<6)<
display();
}
// sqqueuetest.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
#include"sqqueue.h"
#include
using
namespace
std;
int _tmain(int argc, _tchar* argv)
sq.display();
cout
<
>yesorno;
}system("pause");
return
0;}
迴圈佇列 順序佇列(C )
佇列 queue 是一種限定訪問位置的線性變。他允許在表的一端插入,在另一端刪除。這個和計算機排程策略中的先來先服務fcfs first come first served 是一樣的。佇列中可以插入的一端為隊尾 rear 允許刪除的一端稱為隊頭 front 佇列也分為兩種,一種是用陣列的儲存表示,一...
迴圈佇列 順序佇列
在前兩篇中講述了順序佇列中的隊頭移動與不移動兩種順序佇列,今天討論順序佇列中的迴圈佇列,這種迴圈佇列是用一維陣列實現的。在隊頭移動的情況下,根據元素個數與佇列容量之間的數量關係來解決假溢位問題。從上圖中我們可以理解為什麼這種佇列結構可以解決假溢位問題,但是隨之而來,我們要如何判定迴圈佇列已滿呢?在此...
佇列 順序迴圈佇列
順序佇列 sequence queue 用一片連續的儲存空間來儲存佇列中的資料元素.用一維陣列來存放順序佇列中的資料元素。隊頭位置設在陣列下標為 0 的端,用 front 表示 隊尾位置設在陣列的另一端,用 rear 表示。front 和 rear 隨著插入和刪除而變化。當隊列為空時,front r...