回覆列表
-
1 # 使用者163456198709
-
2 # nice楊
front為對頭指標,rear為對尾指標,n為佇列最大元素個數.佇列元素個數=(rear-front+1+n)%n %是求餘數
-
3 # 使用者360280423411150
要求front指向隊頭,rear指向隊尾,那麼初始化front=0,rear究竟是0還是n-1,不妨假設rear=0,那麼很明顯此時已經有一個元素入隊了,在a[0]的位置,此時front=rear=0,與初始為空矛盾.所以rear=(0-1)%n=n-1.
迴圈佇列為充分利用向量空間,克服"假溢位"現象的方法是:將向量空間想象為一個首尾相接的圓環,並稱這種向量為迴圈向量。儲存在其中的佇列稱為迴圈佇列(Circular Queue)。這種迴圈佇列可以以單鏈表的方式來在實際程式設計應用中來實現。
迴圈佇列的初始化、入隊、出隊等基本操作,實現程式碼如下:
#include<iostream>
using namespace std;
#define TRUE 1
#define FALSE 0
//迴圈佇列的型別定義
#define MAXSIZE 50//佇列的最大長度
typedef struct
{
int element[MAXSIZE];//佇列的元素空間
int front;//頭指標指示器
int rear;//尾指標指示器
}SeqQueue;