php简单双向队列

  1. <?php   
  2.     class Deque{  
  3.   
  4.         public $queue = array();  
  5.   
  6.         /** 
  7.          * 尾部入对 
  8.          * @param [type] $value [description] 
  9.          */  
  10.         public function addLast($value){  
  11.             return array_push($this->queue,$value);  
  12.         }  
  13.   
  14.         /** 
  15.          * 尾部出队 
  16.          * @return [type] [description] 
  17.          */  
  18.         public function removeLast(){  
  19.             return array_pop($this->queue);  
  20.         }  
  21.   
  22.         /** 
  23.          * 头部入队 
  24.          * @param [type] $value [description] 
  25.          */  
  26.         public function addFirst($value){  
  27.             return array_unshift($this->queue, $value);  
  28.         }  
  29.   
  30.         /** 
  31.          * 头部出队 
  32.          * @return [type] [description] 
  33.          */  
  34.         public function removeFirst(){  
  35.             return array_shift($this->queue);  
  36.         }  
  37.   
  38.         /** 
  39.          * 清空队列 
  40.          * @return [type] [description] 
  41.          */  
  42.         public function makeEmpty(){  
  43.             unset($this->queue);  
  44.         }  
  45.   
  46.         /** 
  47.          * 获取列头 
  48.          * @return [type] [description] 
  49.          */  
  50.         public function getFirst(){  
  51.             return reset($this->queue);  
  52.         }  
  53.   
  54.         /** 
  55.          * 获取列尾 
  56.          * @return [type] [description] 
  57.          */  
  58.         public function getLast(){  
  59.             return end($this->queue);  
  60.         }  
  61.   
  62.         /** 
  63.          * 获取长度 
  64.          * @return [type] [description] 
  65.          */  
  66.         public function getLength(){  
  67.             return count($this->queue);  
  68.         }  
  69.     }  
  70.  ?>  

         使用示例:   

  1. <?php   
  2.     require_once('testQueue.php');  
  3.   
  4.     $queue = new Deque();  
  5.   
  6.     $queue->addLast('1');  
  7.     $queue->addLast('2');  
  8.     $queue->addLast('3');  
  9.     print_r('队列中的元素:'.json_encode($queue->queue));  
  10.   
  11.     $queue->addLast('4');  
  12.     print_r('尾部入队:'.json_encode($queue->queue));  
  13.   
  14.     $queue->removeLast();  
  15.     print_r('尾部出队:'.json_encode($queue->queue));  
  16.   
  17.     $queue->addFirst('0');  
  18.     print_r('头部入队:'.json_encode($queue->queue));  
  19.   
  20.     $queue->removeFirst();  
  21.     print_r('头部出队:'.json_encode($queue->queue));  
  22.   
  23.     print_r('获取列头:'.json_encode($queue->getFirst()));  
  24.     print_r('获取列尾:'.json_encode($queue->getLast()));  
  25.     print_r('获取长度:'.json_encode($queue->getLength()));  
  26.   
  27.     $queue->makeEmpty();  
  28.     print_r('清空队列:'.json_encode(isset($queue->queue)));  
  29.  ?> 

猜你喜欢

转载自www.cnblogs.com/wuhuan666/p/9036660.html