//循环队列——队列的顺序存储结构 typedefstruct{ QElemType *base;//初始化的动态分配存储空间 int front;//头指针 int rear;//尾指针 int size;//队列的总容量 int ElemNum;//当前队列的元素个数 }SqQueue;
//构造一个大小为len的空队列Q Status InitQueue(SqQueue* Q, int len); //清除队列Q Status ClearQueue(SqQueue* Q); //判定队列是否为空 Status QueueEmpty(SqQueue Q); //返回队列中的元素个数,即队列的长度 intQueueLength(SqQueue Q); //将数组pInput中的len个元素依次插入到队列Q中 //返回值是成功入队的元素个数 intEnQueue(SqQueue* Q, QElemType* pInput, int len); //从队列Q中取出len个元素到数组pOutput中 //返回值是成功取出的元素个数 intDeQueue(SqQueue* Q, QElemType* pOutput, int len);
相关方法实现
InitQueue
1 2 3 4 5 6 7 8 9
Status InitQueue(SqQueue *Q, int len){ Q->front = 0; Q->rear = 0; Q->size = len; Q->ElemNum = 0; Q->base = (QElemType*)malloc(len * sizeof(QElemType)); if (!Q->base)exit(OVERFLOW); return OK; }