顺序队的几个基本功
#include <iostream>
#include <malloc.h>
#define MaxSize 50//宏定义
using namespace std;
typedef char ElemType;
int n=0;//全局变量
char a[MaxSize];//全局变量
typedef struct
{
ElemType data[MaxSize];
int Front,Rear;
}SqQueue;SqQueue *q;
void InitQueue(SqQueue*&q)//初始化队列
{
cout<<"初始化队列;";
q=(SqQueue*)malloc(sizeof(SqQueue));
q->Front=q->Rear=-1;
}
void QueueEmpty(SqQueue*q)//判断队列
{
if(q->Front==q->Rear)
cout<<"队列为空"<<endl;
else
cout<<"队列非空"<<endl;
}
void enQueue(SqQueue *&q)//进队
{
cout<<"进队列后;";
int i=0;
while(q->Rear!=MaxSize-1&&i<n)
{
q->Rear++;
q->data[q->Rear]=a[i];
i++;
}
cout<<"队列长度为:"<<n<<endl;
}
void deQueue(SqQueue*&q)//出队
{
while(q->Front!=q->Rear)
{
q->Front++;
cout<<q->data[q->Front]<<" ";
}
cout<<endl;
}
void DestroyQueue(SqQueue *&q)//释放队列
{
free(q);
}
void input()//数组的输入
{
cin>>n;
if(n>=MaxSize||n<0)
{
cout<<endl<<"输入越界!请重新输入:";
input();
}
else
{
for(int i=0;i<n;i++)
{
cin>>a[i];
}
}
}
int main()
{
cout<<"队列的最大长度为:"<<MaxSize<<endl<<"请输入队列的元素个数:";
input();
InitQueue(q);
QueueEmpty(q);
enQueue(q);
deQueue(q);
QueueEmpty(q);
DestroyQueue(q);
return 0;
}
运行结果