#include<iostream>
using namespace std;
const int N=10;
int q[N];
int rear,front;
void CreatCQ() //建立一個環狀佇列(Circular Queue)
{
front=0;rear=N; //特別值即為N(N為資料的總個數)
}
bool IsEmptyCQ()//檢查佇列裡是不是空的(亦即沒有資料)
{
return rear==N;
}
bool IsFullCQ()//檢查佇列是不是滿的
{
return rear==front;
}
void AddCQ(int item)//加入新資料
{
if(IsFullCQ())cout<<"Queue is full!!"<<endl;
rear=(rear+1)%N; //將rear往前一位
q[rear]=item;
}
int DeleteCQ()
{
int item; //用來儲存被Dequeu的值
if(IsEmptyCQ())cout<<"Queue is empty"<<endl;
front=(front+1)%N; //將front往前一位
item=q[front];
if(front==rear){rear=N;front=0;}
return item;
}
void main(){
CreatCQ();
for(int i=10;i>0;i--)AddCQ(i);
DeleteCQ();
cout<<DeleteCQ()<<endl;
AddCQ(12);
cout<<q[rear]<<endl;
cout<<q[front]<<endl;
system("pause");
}
- Nov 15 Tue 2011 14:22
具特別值的佇列(Circular Queue with Special Value)
close
全站熱搜
留言列表