PHP bidirectional queue implementation code
|
1. what is a bidirectional queue?
Deque, full name double-ended queue, is a data structure with queue and stack properties. Elements in a dual-end queue can pop up from both ends, and the limited insert and delete operations are performed at both ends of the table. A two-way queue (dual-end queue) is like a queue, but elements can be added or removed at any end.
Reference: http://zh.wikipedia.org/zh-cn/%E5%8F%8C%E7% AB %AF%E9%98%9F%E5%88%97
2. php implements two-way queue code
-
Class DoubleQueue
- {
- Public $ queue = array ();
- /** (Tail) team up **/
- Public function addLast ($ value)
- {
- Return array_push ($ this-> queue, $ value );
- }
- /** (Tail) team-OUT **/
- Public function removeLast ()
- {
- Return array_pop ($ this-> queue );
- }
- /** (Header) team up **/
- Public function addFirst ($ value)
- {
- Return array_unshift ($ this-> queue, $ value );
- }
- /** (Head) team-OUT **/
- Public function removeFirst ()
- {
- Return array_shift ($ this-> queue );
- }
- /** Clear the queue **/
- Public function makeEmpty ()
- {
- Unset ($ this-> queue );
- }
- /** Get the column header **/
- Public function getFirst ()
- {
- Return reset ($ this-> queue );
- }
-
/** Get the end of a column **/
- Public function getLast ()
- {
- Return end ($ this-> queue );
- }
-
/** Get length **/
- Public function getLength ()
- {
- Return count ($ this-> queue );
- }
- }
|