#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "conio.h"
#define M 10
typedef char datatype;
typedef struct
{
datatype data[M];
int front,rear,quelen;
}sequeue;
void SETNULLQS(sequeue *sq)
{
sq->front=M-1;
sq->rear=M-1;
sq->quelen=0;
}
bool EMPTYQS(sequeue *sq)
{
if(sq->quelen==0)
return true;
else return false;
}
int ENQUEUEQS(sequeue*sq,datatype x)
{
if(sq->quelen==M){
printf("队满上溢。/n");
return 0;
}
else{
sq->rear=(sq->rear+1)%M;
sq->data[sq->rear]=x;
sq->quelen++;
return 1;
}
}//入队
datatype DEQUEUEQS(sequeue *sq)
{
datatype temp;
if(EMPTYQS(sq))
{
printf("队空下溢。/n");
return 0;
}
else{
sq->front=(sq->front+1)%M;
temp=sq->data[sq->front];
sq->quelen--;
return(temp);
}
}
int main()
{
datatype ch;
sequeue *sq;
sq=(sequeue*)malloc(sizeof(sequeue));
SETNULLQS(sq);
if(EMPTYQS(sq))
printf("队空/n");
else
printf("队非空/n");
printf("请输入字符(空格结束):");
while(ch!=' '){
ch=getche();
if(!(ENQUEUEQS(sq,ch)))
break;
}
printf("%s/n",sq->data);
while(1)
{
ch=DEQUEUEQS(sq);
if(!ch)
break;
printf("%c/n",ch);
printf("%s/n",sq->data);
}
return 0;
}