队列(搬运)


/**************************** 链表 实现队列 ****************************/ typedef int DataType;  struct QueueNode; struct QueueNode {     DataType data;     struct QueueNode *next; };  struct Queue {     struct QueueNode *head, *tail;     int size; };  void QueueEnqueue(struct Queue *que, DataType dt) {     struct QueueNode *insertNode = (struct QueueNode *) malloc( sizeof(struct QueueNode) );     insertNode->data = dt;     insertNode->next = NULL;     if(que->tail) {         que->tail->next = insertNode;         que->tail = insertNode;     }else {         que->head = que->tail = insertNode;     }     ++que->size; }  void QueueDequeue(struct Queue* que) {     struct QueueNode *temp = que->head;     que->head = temp->next;     free(temp);     --que->size;     if(que->size == 0) {         que->tail = NULL;     }  }  DataType QueueGetFront(struct Queue* que) {     return que->head->data; } int QueueGetSize(struct Queue* que) {     return que->size; } int QueueIsEmpty(struct Queue* que) {     return !QueueGetSize(que); } void QueueClear(struct Queue* que) {     que->head = que->tail = NULL;     que->size = 0; }  /**************************** 链表 实现队列 ****************************/