佇列只允許在隊尾插入,在隊頭刪除
迴圈佇列防止假溢位現象
順序儲存結構用陣列實現
#include using namespace std;
#define ok 1
#define error 0
#define maxsize 6
typedef int elemtype;
typedef int status;
/* 定義順序儲存結構的迴圈佇列:sqqueue(迴圈佇列防止假溢位)
* 思路:
* 1、用陣列實現
* 2、頭指標front指向隊頭元素的下標
* 3、尾指標rear指向隊尾元素下乙個位置的下標
*/typedef struct
sqqueue;
/* 迴圈佇列的初始化:initqueue
* 思路:
* 1、頭指標和尾指標指向的下標位置均為0
*/status initqueue(sqqueue *q)
/* 迴圈佇列求佇列長度:queuelength
* 思路:
* 1、佇列滿的條件是:(rear+1)%maxsize==front
* 2、規定:陣列中只有乙個空閒單元時3,規定已滿
* 3、當rear>front時,長度為:rear-front,
* 4、當rearrear + 1) % maxsize == q->front)
q->data[q->rear] = e;
q->rear = (q->rear + 1) % maxsize;
return ok;
}/* 迴圈佇列的出隊:只在隊頭出隊:dequeue,返回元素為e
* 思路:
* 1、判斷佇列是否空,空的條件是front==rear
* 2、將隊頭元素返回e:e=data[front];
* 3、將頭指標front後移一位,若到陣列最後則移到陣列頭部,即:front=(front+1)%maxsize
*/status dequeue(sqqueue *q, elemtype *e)
*e = q->data[q->front];
q->front = (q->front + 1) % maxsize;
return ok;
}/* 輸出佇列函式:prinftqueue
* 思路:
* 1、判斷佇列是否為空
* 2、由於陣列中始終有乙個空閒單元,所以front!=rear
* 3、當rear>front時,按下標從front到rear-1輸出
* 4、當rearrear == q->front)
if (q->rear > q->front) }
else
for (i = 0; i < q->rear ; i++)
}return ok;
}int main()
cout << "輸出佇列:";
prinftqueue(&q);
cout << endl;
int length;
cout << "輸出佇列長度:";
length = queuelength(q);
cout << length << endl;
cout << "輸入出隊元素個數:";
cin >> l;
cout << "輸出出隊元素:";
for (j = 0; j < l; j++)
cout << endl;
cout << "輸出佇列:";
prinftqueue(&q);
cout << endl;
cout << "輸出佇列長度:";
length = queuelength(q);
cout << length << endl;
cout << "輸入入隊元素個數:";
cin >> n;
cout << "依次入隊元素:";
for (j = 0; j < n; j++)
cout << "輸出佇列:";
prinftqueue(&q);
cout << endl;
cout << "輸出佇列長度:";
length = queuelength(q);
cout << length << endl;
return 0;
}
資料結構 迴圈佇列的順序儲存結構
專案整體源 佇列是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。佇列是一種先進先出 first in first out 的線性表,簡稱fifo。允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。線性表有順序儲存和鏈式儲存,棧是線性表,所以也有這兩種儲存方式。同樣,佇列作為一種特殊的線性表...
資料結構 環形佇列 迴圈佇列 順序儲存
佇列是對頭出 隊尾入的先進先出線性表。需要兩個指標front和rear分別來指向隊頭和隊尾。front指向隊頭元素的前乙個位置,rear總是指向隊尾元素。進隊 rear 1 出隊 front 1 隊空條件 front rear 隊滿條件 rear maxsize 1 但是這樣會出現假溢位的情況,因為...
資料結構 非迴圈佇列 順序儲存
佇列是對頭出 隊尾入的先進先出線性表。需要兩個指標front和rear分別來指向隊頭和隊尾。front指向隊頭元素的前乙個位置,rear總是指向隊尾元素。進隊 rear 1 出隊 front 1 隊空條件 front rear 隊滿條件 rear maxsize 1 include include ...