代码如下,初始化中的“初始化成功”一句都没有打印出来
#include<iostream>
#include<malloc.h>
#include<conio.h>
#define MAXSIZE 6
using namespace std;
typedef int datatype;
struct sequeue{
datatype data[MAXSIZE];
int front,rear;
};
struct sequeue *sq;
//初始化
sequeue *SetNULLQ(sequeue *sq)
{
sq->front=MAXSIZE-1;
sq->rear=MAXSIZE-1;
cout<<"初始化成功"<<endl;
return sq;
}
//入队
sequeue *EnQueueQ(sequeue *sq,datatype x)
{
if(sq->front==((sq->rear+1)%MAXSIZE))
{
cout<<"队伍已满,无法入队"<<endl;
return sq;
}
else
{
sq->rear=(sq->rear+1)%MAXSIZE;
sq->data[sq->rear]=x;
cout<<x<<"已入队"<<endl;
return sq;
}
}
//出队
sequeue *DeQueueQ(sequeue *sq)
{
if(sq->front==sq->rear)
{
cout<<"队伍为空,无法出队"<<endl;
return NULL;
}
else
{
sq->front=(sq->front+1)%MAXSIZE;
cout<<"队头已出队"<<endl;
return sq;
}
}
//取队头元素
datatype *GetFrontQ(sequeue *sq)
{
if(sq->front==sq->rear)
{
cout<<"队伍为空,无法取队头元素"<<endl;
return NULL;
}
else
{
datatype *ret;
ret=(datatype *)malloc(sizeof(datatype));
*ret=sq->data[(sq->front+1)%MAXSIZE];
return ret;
}
}
int main()
{
sq=SetNULLQ(sq);
datatype x;
while((x=getche())!='#')
{
sq=EnQueueQ(sq,x);
}
cout<<"当前队头为"<<GetFrontQ(sq)<<endl;
sq=DeQueueQ(sq);
cout<<"当前队头为"<<GetFrontQ(sq)<<endl;
}