顺序队列的实现

目录

顺序队列由以下2个操作:入队算法和出队算法,创建2个函数,具体实现在下面:

#include <stdio.h>
#include <malloc.h>
#define TRUE 1
#define FALSE 0
#define m 50

typedef struct
{
char elem[m];
int front;
int rear;
}SeqQueue;

void InitQueue(SeqQueue *q)
{
q->front=0;
q->rear=0;
}

int EnQueue(SeqQueue *q,int x)
{
if(q->rear==m)
{
   printf("队列已满");
   return (FALSE);
}
else
{
   q->elem[q->rear]=x;
        q->rear++;
   return (TRUE);
}
}

int DeQueue(SeqQueue *q,int x)
{
if(q->rear==q->front)
{
   printf("队空");
   return (FALSE);
}
else
{
   x=q->elem[q->front];
        q->front++;
   return x;
}

}

main()
{
SeqQueue *Q;
Q=(SeqQueue*)malloc(sizeof(SeqQueue));
int x;
InitQueue(Q);
printf("输入入队的数字:\n");
scanf("%d",&amp;x);
while(x!=0)
{
   EnQueue(Q,x);
   scanf("%d",&amp;x);
}
    printf("出队队列的数字:\n");
while(x=DeQueue(Q,x))
{
   printf("%2d",x);
}
printf("\n");
}

实现的如下

顺序队列的实现