#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 6
typedef struct{
char data[MAXSIZE];
char front;
char rear;
}SqQueue;
//初始化循环队列
void InintQueue(SqQueue *&Q)
{
Q=(SqQueue *)malloc(sizeof(SqQueue));
Q->front=Q->rear=0;
}
//判断队列是否为空
bool QueueEmpty(SqQueue *Q)
{
if(Q->front==Q->rear)
return true;
else
return false;
}
//入队
bool EnQueue(SqQueue *&Q,char &e)
{
if(Q->front==(Q->rear+1)%MAXSIZE)
return false;
Q->data[Q->rear]=e;
Q->rear=(Q->rear+1)%MAXSIZE;
return true;
}
//判断是否满
bool QueueFull(SqQueue *Q)
{
if(Q->front==(Q->rear+1)%MAXSIZE)
return true;
else
return false;
}
//取队首元素
bool GetHead(SqQueue *&Q,char &e)
{
if(Q->front==Q->rear)
return false;
else
e=Q->data[Q->front];
return true;
}
//出队
bool DeQueue(SqQueue *&Q,char &e)
{
if(Q->front==Q->rear)
return false;
else
e=Q->data[Q->front];
Q->front=(Q->front+1)%MAXSIZE;
return true;
}
//释放队列
void DestroyQueue(SqQueue *&Q)
{
free(Q);
}
int main(){
SqQueue *Q;
int i,n,m;
char d[6];
InintQueue(Q);
if(QueueEmpty(Q))
printf("空\n");
else
printf("不空\n");
printf("请输入元素 :\n");
for(i=0;i<=6;i++)
{
scanf("%c",&d[i]);
EnQueue(Q,d[i]);
}
if(QueueEmpty(Q))
printf("空\n");
else
printf("不空\n");
if(QueueFull(Q))
printf("不满\n");
else
printf("满\n");
printf("请再输入元素: \n");
for(m=i;m<n;m++)
{
scanf("%c",&d[m]);
EnQueue(Q,d[m]);
}
return 0;
}
那得看代码啊
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!