数据结构顺序队列
#include<iostream>
#include<cstdlib>
#define MaxSize 50
using namespace std;
typedef int ElemType;
typedef struct
{
ElemType data[MaxSize];
int front,rear;
}SqQueue;
void InitQueue(SqQueue *&q)
{
q=(SqQueue *)malloc(sizeof(SqQueue));
q->front=q->rear=-1;
}
void DestroyQueue(SqQueue *&q)
{
free(q);
}
bool QueueEmpty(SqQueue *q)
{
return q->front==q->rear;
}
bool enQueue(SqQueue *&q,ElemType e)
{
if(q->rear==MaxSize-1)return false;
q->rear++;
q->data[q->rear]=e;
return true;
}
bool deQueue(SqQueue *&q,ElemType &e)
{
if(q->front==q->rear)return false;
q->front++;
e=q->data[q->front];
return true;
}
int main()
{
SqQueue *qu;
ElemType e;
InitQueue(qu);
enQueue(qu,1);
enQueue(qu,2);
enQueue(qu,3);
deQueue(qu,e);
cout<<e<<endl;
DestroyQueue(qu);
return 0;
}