#include<stdio.h>
#include<stdlib.h>
#define QUEUE_MAX 100//定义队列大小
typedef int INDEX_TYPE;
typedef int QUEUE_TYPE;
typedef struct {
INDEX_TYPE front;
INDEX_TYPE rear;
QUEUE_TYPE* datas;
}Node;
void queue_init(Node* queue) {
queue->front = -1;
queue->rear = -1;
queue->datas = (QUEUE_TYPE*)calloc(QUEUE_MAX , sizeof(QUEUE_TYPE));
}
void pop(Node* queue) {
queue->front += 1;
queue->datas[queue->front] = 0;
}
void push(Node* queue) {
queue->rear += 1;
QUEUE_TYPE value;
printf("请输入要压入的数:");
scanf_s("%d", &value, 4);
queue->datas[queue->rear] = value;
}
void show(Node* queue) {
int i = 0;
printf("\n");
for (i = queue->front+1; i <= queue->rear;i++) {
printf("%d ", queue->datas[i]);
}
}
int main() {
//初始化队列
Node* queue = (Node*)malloc(sizeof(Node));
int i = 0;
queue_init(queue);
do {
printf("要压入数据请输入1,要弹出数据请输入0,退出请输入-1 :");
scanf_s("%d",&i,4);
getchar();
if (i==1) {
push(queue);
}
else if (i == 0) {
pop(queue);
}
} while (i!=-1);
show(queue);
return 0;
}