#include<stdio.h>
#define Maxsize 5
#define OK 1
typedef int QElemtype;
typedef int Status;
typedef struct
{
QElemtype data[Maxsize];
QElemtype front;
QElemtype rear;
}SqQueue;
SqQueue* Q;
Status InitQueue(SqQueue* Q)
{
scanf_s("%d", &Q->data[Q->rear]);
if (Q->data[Q->rear])
{
Q->rear = (Q->rear + 1) % Maxsize;
InitQueue(Q);
}
else
Q->rear = (Q->rear - 1) % Maxsize;
return OK;
}
Status Print(SqQueue* Q)
{
printf("队列为:");
QElemtype i = Q->front;
while (i != Q->rear)
{
printf("]", Q->data[i]);
i = (i + 1) % Maxsize;
}
printf("]", Q->data[Q->rear]);
printf("\n");
return OK;
}
Status IntQueue(SqQueue* Q)
{
QElemtype i = 0;
Q->rear = (Q->rear + 1) % Maxsize;
if (Q->rear != Q->front)
{
printf("输入插入元素:");
scanf_s("%d", &Q->data[Q->rear]);
printf("是否继续插入:1.是 2.否");
scanf_s("%d", &i);
}
if (Q->rear == Q->front)
{
printf("队满\n");
Q->rear = (Q->rear - 1) % Maxsize;
}
while (i == 1)
{
IntQueue(Q);
i = 0;
}
return OK;
}
Status PushOut(SqQueue* Q)
{
printf("队列输出:");
printf("%d\n", Q->data[Q->front]);
Q->front = (Q->front + 1) % Maxsize;
return OK;
}
int main()
{
Q = (SqQueue*)malloc(sizeof(SqQueue));
Q->rear = 0;
Q->front = 0;
InitQueue(Q);
Print(Q);
PushOut(Q);
IntQueue(Q);
Print(Q);
return 0;
}
转载请注明原文地址:https://ipadbbs.8miu.com/read-17715.html