intdequeue(CircleIntQueuePtr paraPtr){int resultValue;//首先检查是否为空if(paraPtr->head == paraPtr->tail){printf("No element in the queue.\r\n");return-1;}//删除头数据//复制其值
resultValue = paraPtr->data[paraPtr->head % TOTAL_SPACE];//head++ 删除其值
paraPtr->head++;return resultValue;}
//输出队列
voidoutputLinkQueue(CircleIntQueuePtr paraPtr){int i;//检查是否为空if(paraPtr->head == paraPtr->tail){printf("Empty queue.");return;}printf("Elements in the queue: ");//循环打印for(i = paraPtr->head; i < paraPtr->tail; i++){printf("%d, ", paraPtr->data[i % TOTAL_SPACE]);//%的作用防止数大咯}printf("\r\n");}
//测试代码
voidtestLinkQueue(){int i =10;
CircleIntQueuePtr tempPtr =initQueue();for(; i <16; i ++){enqueue(tempPtr, i);}outputLinkQueue(tempPtr);for(i =0; i <6; i ++){printf("dequeue gets %d\r\n",dequeue(tempPtr));}enqueue(tempPtr,8);outputLinkQueue(tempPtr);}intmain(){testLinkQueue();return1;}