c++//队列,循环队列,双端队列

队列

queue <int> q;
q.push(i);
q.pop();//不返回值
q.front();//返回队首
q.back();//返回队尾
q.size();
q.empty();

双端队列

#include<deque>
deque<int> 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;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值