队列
queue q;
q.push(i);
q.pop();//不返回值
q.front();//返回队首
q.back();//返回队尾
q.size();
q.empty();
双端队列
#include
deque q;
q.push_front(x);
q.push_back(x);
q.pop_front();
q.pop_back();
q.clear();
q.empty();
q.size();
c++循环队列
typedef struct queue{
int count;
int front;
int rear;
int data[MAX_SIZE];
}Queue;
void Init(Queue *ptr)
{
ptr->count=0;
ptr->rear=-1;
ptr->front=0;
}
bool QueueFull(Queue *ptr)//判断队列是否满
{
return ptr->count>=MAX_SIZE;
}
bool QueueEmpty(Queue *ptr)//判断队列是否为空
{
return ptr->count<=0;
}
void Append(Queue *ptr,int item)//入队列
{
if(QueueFull(ptr))
{
cout<<"满了";
return;
}
else{
ptr->count++;
ptr->rear=(ptr->rear+1)%MAX_SIZE;
ptr->data[ptr->rear]=item;
}
}
void Pop(Queue *ptr)//出队列
{
if(QueueEmpty(ptr))
{
cout<<"队列为空";
return;
}
else{
ptr->count--;
ptr->front=(ptr->front+1)%MAX_SIZE;
}
}