#include <stdio.h> #include <tchar.h> #include <stdlib.h> #define MaxQueueSize 100 // TODO: 在此处引用程序需要的其他头文件 struct Node{ int data; Node* next; }; struct Queue{ Node* front; Node* rear; }; //初始化队列 bool Init_Queue(Queue* q){ q->front = q->rear = (Node*)malloc(MaxQueueSize*sizeof(Node)); if (!q->front) return false; q->front->next = NULL; return true; } //清空队列 bool Clear_Queue(Queue* q){ q->front = q->rear; return true; } //销毁队列 bool Destroy_Queue(Queue* q){ Node* temp = q->front; while (q->front != q->rear){ temp = q->front->next; free(q->front); q->front = temp; } q->front = q->rear = NULL; return true; } //入队 bool EnQueue(Queue* q, int value){ Node* n = (Node*)malloc(sizeof(Node)); n->next = NULL; n->data = value; q->rear->next = n; q->rear = n; return true; } //出队,返回队头元素的值 int DeQueue(Queue* q){ int temp; if (q->front == q->rear) exit(-1); Node* p = q->front; temp = p->next->data; q->front = p->next; if (p == q->rear) q->front = q->rear; free(p); p = NULL; return temp; } //打印队列 void Print_Queue(Queue q){ if (q.front == q.rear) printf("空队列\n"); while (q.front != q.rear){ printf("%d\n", DeQueue(&q)); } }