C++实现顺序队列

#include "stdafx.h"
#include<iostream>
#include<string>
using namespace std;
const int queue_size = 100;
typedef struct sequence_queue
{
	int data[queue_size];
	int front, rear;
}queue;
void initial(queue &qu)//1.队列初始化
{
	qu.rear = qu.front = 0;
}
int push(queue &qu, int value)//2.入队
{
	if ((qu.rear + 1) % queue_size == qu.front)
		return 0;
	qu.rear = (qu.rear + 1) % queue_size;//队列长度+1
	qu.data[qu.rear] =value;//赋值
	return 1;
}
int pop(queue &qu)//3.出队
{
	if (qu.rear == qu.front)//空队列不出队
		return 0;
	qu.rear = (qu.rear-1) % queue_size;//队尾-1
	int x = qu.data[qu.front];
	return x;
}
int front(queue &qu)//4.取队首元素
{
	if (qu.rear == qu.front)
		return 0;
	int x = qu.data[(qu.front + 1) % queue_size];
	return x;
}
int back(queue &qu)//5.取队列最后一个元素
{
	int x = qu.data[(qu.rear) % queue_size];
	return x;
}
int size(queue &qu)//6.求队列长度
{
	return qu.rear% queue_size;//队尾位置
}
bool empty (queue&qu)//7.判断队为空
{
	if (qu.rear == qu.front)
		return false;
	else
		return true;
}
int _tmain(int argc, _TCHAR* argv[])
{
	queue qu;
	initial(qu);
	push(qu, 9);
	push(qu, 8);
	pop(qu);//出队
	cout<<front(qu);//取队首元素
	cout << endl;
	system("pause");
	return 0;
}

运行结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值