c语言实现基本的数据结构(四) 循环队列
#include <stdio.h> #include <tchar.h> #include <stdlib.h> #define MaxQueueSize 100 // TODO: 在此处引用程序需要的其他头文件 struct Queue { int* base; int front;//队头指针 int rear;//队尾指针 }; //初始化队列 bool Init_Queue(Queue* q){ q->base = (int*)malloc(MaxQueueSize*sizeof(int)); if (!q->base) return false; q->front = q->rear = 0; return true; } //销毁队列 bool Destroy_Queue(Queue* q){ free(q); return true; } //清空队列 bool Clear_Queue(Queue* q){ q->front = q->rear = 0; return true; } //入队 bool EnQueue(Queue* q, int value){ if ((q->rear + 1) % MaxQueueSize == q->front) return false; q->base[q->rear] = value; q->rear++; return true; } //出队 int DeQueue(Queue* q){ if (q->rear == q->front) exit(EXIT_FAILURE); q->front++; return q->base[q->front - 1]; } //打印队列 void Print_Queue(Queue q){ if (q.rear == q.front) printf("空队列\n"); while (q.rear != q.front){ printf("%d->", q.base[q.front]); q.front++; } printf("\n"); }