目录
队列是一种先进先出的数据结构,通常用一个队首元素front指向队首元素的前一个位置,而使用队尾指针来指向队尾元素。
- 清空(clear):
/*使用数组来实现队列是,初始状态为front=-1,rear=-1*/ void clear(){ front=rear=-1; }
- 获得队列中的元素个数(size):
/*rear-front是队列内元素的个数*/ int size(){ return rear-front; }
- 判空(empty):
/*若rear等于front,则队列为空*/ bool empty(){ if(front==rear) return true; else return false; }
- 入队(push):
/*入队,由于指针rear指向队尾元素,因此把元素入队时,需要先把rear+1,在存放到rear指向的位置*/ void push(int x){ q[++rear]=x; }
- 出队(pop):
/*直接把队首指针加1来实现出队效果*/ void pop(){ front++; }
- 取队首元素(get_front):
/*由于队首指针front指向的队首元素的前一个元素,因此front+1才是队首元素的位置*/ int get_front(){ return q[front+1]; }
- 取队尾元素(get_rear):
/*由于队尾指针rear指向的队尾元素,因此直接访问rear是队尾元素的位置*/ int get_rear(){ return q[rear]; }
STL容器中的queue和priority queue的实现方式: