线性结构常见应用之队列[基于郝斌课程]

张开发
2026/5/5 1:38:29 15 分钟阅读
线性结构常见应用之队列[基于郝斌课程]
队列的应用所有和时间有关的操作都与队列有关/* file main.c brief 线性结构常见应用之队列 author EricsT (EricsT163.com) version v1.0.0 date 2025-09-24 history 2025-09-24 EricsT - 新建文件 */ #include stdio.h #include malloc.h #define LEN 6 typedef struct QUEUE { int* pBase; int front; int rear; }Queue, *PtrQueue; void InitQueue(PtrQueue ptrQueue);//初始化 bool InQueue(PtrQueue ptrQueue, int inValue);//入队 bool OutQueue(PtrQueue ptrQueue);//出队 bool isEmptyQueue(const PtrQueue ptrQueue);//判断是否为空 bool isFullQueue(const PtrQueue ptrQueue);//判断是否满了 void TraverseQueue(const PtrQueue ptrQueue);//遍历 int main(void) { Queue queue; InitQueue(queue); if (isEmptyQueue(queue)) printf(队列为空\n); else printf(队列不空\n); int inVaule; printf(请输入要入队的值); scanf(%d, inVaule); InQueue(queue, inVaule); printf(请输入要入队的值); scanf(%d, inVaule); InQueue(queue, inVaule); printf(请输入要入队的值); scanf(%d, inVaule); InQueue(queue, inVaule); printf(请输入要入队的值); scanf(%d, inVaule); InQueue(queue, inVaule); printf(请输入要入队的值); scanf(%d, inVaule); InQueue(queue, inVaule); printf(请输入要入队的值); scanf(%d, inVaule); InQueue(queue, inVaule); printf(请输入要入队的值); scanf(%d, inVaule); InQueue(queue, inVaule); if (isEmptyQueue(queue)) printf(队列为空\n); else printf(队列不空\n); if (isFullQueue(queue)) printf(队列已满\n); else printf(队列未满\n); TraverseQueue(queue); OutQueue(queue); TraverseQueue(queue); return 0; } void InitQueue(PtrQueue ptrQueue) { ptrQueue-pBase (int*)malloc(sizeof(int) * LEN); ptrQueue-front 0; ptrQueue-rear 0; } bool InQueue(PtrQueue ptrQueue, int inValue) { if (isFullQueue(ptrQueue)) return false; ptrQueue-pBase[ptrQueue-rear] inValue; ptrQueue-rear (ptrQueue-rear 1) % LEN;//从后面加入 return true; } bool OutQueue(PtrQueue ptrQueue) { if (isEmptyQueue(ptrQueue)) return false; ptrQueue-front (ptrQueue-front 1) % LEN;//先进先出//从前面出去 return true; } bool isEmptyQueue(const PtrQueue ptrQueue) { if (ptrQueue-front ptrQueue-rear) return true; return false; } bool isFullQueue(const PtrQueue ptrQueue) { if (ptrQueue-front ((ptrQueue-rear 1) % LEN)) return true; return false; } void TraverseQueue(const PtrQueue ptrQueue) { int i ptrQueue-front; while (ptrQueue-rear ! i) { printf(%d , ptrQueue-pBase[i]); i (i 1) % LEN; } printf(\n); }

更多文章