#include"stdio.h"
#define N 10
typedef struct Queue
{
int data[N];
int front;
int rear;
}queue;
void init(queue *p);
int isEmpty(queue* p);
int isFull(queue* p);
void deleteQueue(queue* p);
void insertQueue(queue* p,int key);
void show(queue* p);
int main()
{
queue m;
init(&m);
for (int i = 93; i < 101;i++)
{
insertQueue(&m,i);
show(&m);
}
insertQueue(&m, 11);
show(&m);
deleteQueue(&m);
show(&m);
deleteQueue(&m);
show(&m);
return 0;
}
void init(queue *p)
{
p->front = p->rear = 0;
for (int i = 0; i < N;i++)
{
p->data[i] = -1;
}
}
int isEmpty(queue* p)
{
if (p->rear == 0)
{
return 0;
}
else
{
return 1;
}
}
int isFull(queue* p)
{
if (p->rear < N)
{
return 0;
}
else
{
return 1;
}
}
void deleteQueue(queue* p)
{
if (!isEmpty(p))
{
return;
}
else
{
p->rear--;
printf("%d已出队\n", p->data[p->rear]);
p->data[p->rear] = -1;
}
}
void insertQueue(queue* p,int key)
{
if (isFull(p))
{
return;
}
else
{
p->rear++;
int j = p->rear;
for (int i = p->rear; i > p->front;i--)
{
p->data[j] = p->data[j - 1];
j--;
}
p->data[p->front] = key;
printf("%d已入队\n", key);
}
}
void show(queue *p)
{
printf("队列中的数有:");
for (int i = p->front; i < N; i++)
{
if(p->data[i] != -1)
printf("%4d",p->data[i]);
}
printf("\n");
}