隊列也是一種存儲方式,頭進尾出。
先給出順序存儲的代碼:
主類
class Queue
{
int data[Maxsize];
int front,rear;//頭指針,以及尾指針
public:
Queue();
~Queue();//順序存儲可以爲空
void inQueue(int x);//進
int deletedata();//出
int getdata();//獲得對列的頭數據
int getlength();//獲取長度
bool empty();//判斷是否爲空
};
功能實現代碼
構造函數
Queue::Queue()//這裏的頭尾指針必須從-1開始,隊列從0位置開始
{
front=-1;
rear=-1;
}
進隊列
void Queue::inQueue(int x)
{
if((rear+1)%Maxsize==front)//這是判斷是否滿隊列的關鍵公式
{
cout<<"滿了";
}
else
{
rear=(rear+1)%Maxsize;
data[rear]=x;
}
}
出隊列
int Queue::deletedata()
{
if(front==rear)
{
cout<<"爲空";
}
else
{
front=(front+1)%Maxsize;
return data[front];
}
}
獲取頭數據
int Queue::getdata()
{
if(front==rear)
{
cout<<"爲空";
}
else
{
int i=(front+1)%Maxsize;
return data[i];
}
}
獲取長度
int Queue::getlength()
{
if(rear==front)
{
cout<<"爲空";
}
else
{
return (rear-front+Maxsize)%Maxsize;
}
}
判斷是否爲空
bool Queue::empty()
{
if(front==rear)
{
cout<<"空";
}
}
順序存儲就是這些,下次給鏈式存儲。