public function testEverything() { $queue = new Queue(); $this->assertTrue($queue->is_empty()); $queue->push_back(1); $queue->push_back(2); $queue->push_back(3); $this->assertFalse($queue->is_empty()); $this->assertEquals(1, $queue->pop_front()); $this->assertEquals(2, $queue->pop_front()); $this->assertEquals(3, $queue->pop_front()); $this->assertTrue($queue->is_empty()); $queue->push_back(4); $this->assertFalse($queue->is_empty()); $this->assertEquals(4, $queue->pop_front()); $in_cnt = 0; $out_cnt = 0; for ($i = 1; $i < 50; $i++) { for ($j = 0; $j < $i; $j++) { $queue->push_back($in_cnt); $in_cnt++; } $this->assertEquals($out_cnt, $queue->pop_front()); $out_cnt++; } while (!$queue->is_empty()) { $this->assertEquals($out_cnt, $queue->pop_front()); $out_cnt++; } }
*/ public function enqueue($el) { array_push($this->_queue, $el); } /** * Dequeue the front element from the queue. * * @return mixed $element. */ public function dequeue() { if ($this->front() !== null) { return array_shift($this->_queue); } return null; } } // Example usage: $queue = new Queue(); $queue->enqueue("Element"); $queue->enqueue(23); $queue->enqueue(array(3, 4, 6)); while (!$queue->is_empty()) { echo "The front element is now : \n"; var_dump($queue->front()); echo "\n"; $queue->dequeue(); } // Outputs NULL var_dump($queue->front());