队列简称队,它也是一种运算受限的线性表,其限制仅允许在表的一端进行插入,而在表的另一端进行删除。我们把进行插入的一端称作队尾(rear),进行删除的一端称作队首。向队列中插入新元素称为进队或入队,新元素进队后成为新的队尾元素;从队列中删除元素称为离队或出队,元素离队后,其后继元素就成为队首元素。
由于队列的插入和删除操作分别是在各自的一端进行的,每个元素必然按照进入的次序离队。所以又把队列称为先进先出表。
#include <iostream>
using namespace std;
int queue[5]= {0};
int front =-1;//头指针
int rear=-1;//尾指针
void addqueue (int value)
{
if(rear>=5)
cout<<"The queue is full!\n";
else
{
rear++;
queue[rear]=value;
}
}
int delqueue()
{
int temp;
if(front ==rear)
return -1;
else
{
front ++;
temp=queue[front];
queue[front]=0;
return temp;
}
}
void display()
{
int i;
for(int i=0; i<5; i++)
{
if(queue[i]!=0)
cout<<queue[i]<<' ';
}
cout<<endl;
}
int main()
{
int select;
int i,temp;
while(1)
{
cout<<"1.Input a data\n";
cout<<"2.Output a data\n";
cout<<"3.Exit\n";
cin>>select;
switch(select)
{
case 1:
cout<<"Please input a value ";
cin>>temp;
addqueue(temp);
break;
case 2:
if(delqueue()==-1) //如果队列是空
cout<<"The queue is empty!\n";
else
cout<<"The out value is "<<temp<<endl;
break;
case 3:
return 0;
}
display();
}
return 0;
}