顺序队列:创建、初始化、求表长、入队、出队、取队头
创建
//顺序队列的创建 typedef struct { int *base;//初始化分配的内存地址 int front;//头指针 int rear;//尾指针 }Squeue;
初始化
//队列的初始化 bool InitQueue(Squeue &Q) { Q.base = new int[MaxQsize]; if (!Q.base) return false; Q.front = Q.rear = 0; return true; }
求队列表长
//求队列长 int GetQueueLength(Squeue Q) { return (Q.front - Q.rear + MaxQsize) % MaxQsize; }
队列入队
//队列入队 bool EnQueue(Squeue &Q,int e) { //队满的情况 if ((Q.rear + 1) % MaxQsize == Q.front) return false; Q.base[Q.rear] = e; Q.rear = (Q.rear + 1) % MaxQsize; return true; }
队列出队
//队列出队 bool DeQueue(Squeue &Q, int &e) { //队列为空的情况 if (Q.front == Q.rear) return false; e = Q.base[Q.front]; Q.front = (Q.front + 1) % MaxQsize; return true; }
取队头
//取队头 int GetQueueHead(Squeue Q) { return Q.base[Q.front]; }


浙公网安备 33010602011771号