PHP簡單雙向佇列實現
阿新 • • 發佈:2018-12-27
這是一個簡單的PHP雙向佇列的實現:
<?php class Deque{ public $queue = array(); /** * 尾部入對 * @param [type] $value [description] */ public function addLast($value){ return array_push($this->queue,$value); } /** * 尾部出隊 * @return [type] [description] */ public function removeLast(){ return array_pop($this->queue); } /** * 頭部入隊 * @param [type] $value [description] */ public function addFirst($value){ return array_unshift($this->queue, $value); } /** * 頭部出隊 * @return [type] [description] */ public function removeFirst(){ return array_shift($this->queue); } /** * 清空佇列 * @return [type] [description] */ public function makeEmpty(){ unset($this->queue); } /** * 獲取列頭 * @return [type] [description] */ public function getFirst(){ return reset($this->queue); } /** * 獲取列尾 * @return [type] [description] */ public function getLast(){ return end($this->queue); } /** * 獲取長度 * @return [type] [description] */ public function getLength(){ return count($this->queue); } } ?>
<?php require_once('testQueue.php'); $queue = new Deque(); $queue->addLast('1'); $queue->addLast('2'); $queue->addLast('3'); print_r('佇列中的元素:'.json_encode($queue->queue)); $queue->addLast('4'); print_r('尾部入隊:'.json_encode($queue->queue)); $queue->removeLast(); print_r('尾部出隊:'.json_encode($queue->queue)); $queue->addFirst('0'); print_r('頭部入隊:'.json_encode($queue->queue)); $queue->removeFirst(); print_r('頭部出隊:'.json_encode($queue->queue)); print_r('獲取列頭:'.json_encode($queue->getFirst())); print_r('獲取列尾:'.json_encode($queue->getLast())); print_r('獲取長度:'.json_encode($queue->getLength())); $queue->makeEmpty(); print_r('清空佇列:'.json_encode(isset($queue->queue))); ?>