#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;
}
运行结果: