队列模板
Posted gzu_zb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了队列模板相关的知识,希望对你有一定的参考价值。
//队列:队首出,队尾进(先进先出表) #include<iostream> using namespace std; const int MAXN = 1000 + 5; struct Queue { int *queue; int front; int rear; int len; }; //初始化队列 void InitQueue(Queue& Q) { Q.queue = new int[MAXN]; Q.front = Q.rear = 0; Q.len = 0; } //入队 void InsertQueue(Queue& Q, int item) { Q.rear = (Q.rear + 1) % MAXN; Q.queue[Q.rear] = item; Q.len++; } //清空队列 void ClearQueue(Queue& Q) { if (Q.queue != NULL) delete[] Q.queue; Q.front = Q.rear = 0; Q.queue = NULL; Q.len = 0; } //出队 void PopQueue(Queue& Q) { Q.front = (Q.front + 1) % MAXN; Q.len--; } //求队首元素 int PeekQueue(Queue Q) { return Q.queue[(Q.front + 1) % MAXN]; } //判断队列是否为空 bool EmptyQueue(Queue Q) { return Q.front == Q.rear; } int main() { Queue Q; InitQueue(Q); int a[] = { 2,4,5,6,7,9,10,3 }; int l = sizeof(a) / sizeof(int); for (int i = 0; i < l; i++) { InsertQueue(Q, a[i]); } cout << Q.len << endl;//输出队列的长度 cout << PeekQueue(Q) << endl;//查看队首元素 PopQueue(Q);//删除队首元素 PopQueue(Q);//删除队首元素 //依次输出队列的元素 while (!EmptyQueue(Q)) { cout << PeekQueue(Q) << " "; PopQueue(Q); } ClearQueue(Q);//清空队列 return 0; }
以上是关于队列模板的主要内容,如果未能解决你的问题,请参考以下文章