#include <iostream>
#include <string>
#include <vector>
#define MAXSIZE 100
using namespace std;
/**
循环队列
*/
typedef struct
{
int *base;
int front;
int rear;
}sqQueue;
//初始化
int initQueue(sqQueue &Q)
{
Q.base = new int[MAXSIZE];
if(!Q.base)
{
cout<<"initQueue err"<<endl;
return -1;
}
Q.front = Q.rear = 0;
return 1;
}
//入队
int enQueue(sqQueue &Q,int e)
{
if((Q.rear+1)%MAXSIZE==Q.front)
{
cout<<"enQueue err:MAXSIZE!"<<endl;
return -1;
}
Q.base[Q.rear] = e;
Q.rear = (Q.rear+1)%MAXSIZE;
return 1;
}
//查看队头元素
int getHead(sqQueue Q)
{
if(Q.front!=Q.rear)
{
cout<<Q.base[Q.front]<<endl;
return Q.base[Q.front];
}
}
//出队
int deQueue(sqQueue &Q)
{
if(Q.front==Q.rear)
{
cout<<"deQueue err:queue NULL!"<<endl;
return -1;
}
Q.front = (Q.front+1)%MAXSIZE;
return 1;
}
int main()
{
sqQueue queue;
initQueue(queue);
enQueue(queue,1);
enQueue(queue,2);
enQueue(queue,3);
deQueue(queue);
getHead(queue);
}
线性表-循环队列的表示
最新推荐文章于 2022-05-09 16:35:13 发布