当前位置:编程学习 > C/C++ >>

用C语言做循环队列的操作验证

数据结构课程设计用的.谢谢!
答案://文件名称:LoopQueue.h//功能说明:实现了循环队列结构//使用说明:包含本文件前必须定义QUEUE_ELEMENT_TYPE,它表示队列中元素的类型,还可定义队列的大小QUEUE_MAX_SIZE,默认为//            64+1,由于队列中始终要有一个空元素,所以实际最多可存64个元素。 /////////////////////////////////////////////////////////////////////////////////////////////////////#include #include #ifndef BOOLEAN#define BOOLEAN int#endif#ifndef TRUE#define TRUE 1#endif#ifndef FALSE#define FALSE 0#endif//循环队列的大寸(最大尺寸) #ifndef QUEUE_MAX_SIZE#define QUEUE_MAX_SIZE 64+1#endif#define LOOPQUEUEASSERT assert(pLQ != 0 && pLQ->front >=0 && pLQ->rear >= 0 && QUEUE_MAX_SIZE > 1)struct LoopQueue{  QUEUE_ELEMENT_TYPE data[QUEUE_MAX_SIZE];  long                front;  long                rear;};//初始化循环队列 void LoopQueue_Init(LoopQueue *pLQ){    pLQ->front = 0;      pLQ->rear  = 0;    LOOPQUEUEASSERT;}//判断循环队列是否为空 BOOLEAN LoopQueue_IsEmpty(LoopQueue *pLQ){     LOOPQUEUEASSERT;     return pLQ->rear==pLQ->front;  }//获取循环队列中存储的元素的个数 long LoopQueue_Length(LoopQueue *pLQ){    LOOPQUEUEASSERT;    return (pLQ->rear-pLQ->front+QUEUE_MAX_SIZE)%QUEUE_MAX_SIZE;}//入队 void LoopQueue_In(LoopQueue *pLQ, QUEUE_ELEMENT_TYPE element){    LOOPQUEUEASSERT;       if(pLQ->front==(pLQ->rear+1)%QUEUE_MAX_SIZE)       {         pLQ->rear=(pLQ->rear+1)%QUEUE_MAX_SIZE;        pLQ->data[pLQ->rear] = element;         pLQ->front=(pLQ->front+1)%QUEUE_MAX_SIZE;       }       else       {         pLQ->rear=(pLQ->rear+1)%QUEUE_MAX_SIZE;         pLQ->data[pLQ->rear] = element;       }}//出队 BOOLEAN LoopQueue_Out(LoopQueue *pLQ, QUEUE_ELEMENT_TYPE* pElement){    LOOPQUEUEASSERT;       if(LoopQueue_IsEmpty(pLQ))        return FALSE;    pLQ->front=(pLQ->front+1)%QUEUE_MAX_SIZE;    *pElement = pLQ->data[pLQ->front];    return TRUE;}本文来自CSDN博客 http://blog.csdn.net/yeyuboy/archive/2006/05/18/743414.aspx

上一个:C语言中的是getch什么函数啊
下一个:谁能用C语言编一个链式表

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,