標籤:資料 c語言 queue temp efi 清空 sizeof 出隊 結構
#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)); }}
c語言實現基本的資料結構(五) 單鏈隊列