用PHP实现一个双向队列

  1. <?php   
  2. class DoubleQueue    
  3. {   
  4.     public $queue = array();   
  5.     /**(尾部)入队  **/   
  6.     public function push($value)    
  7.     {   
  8.         return array_push($this->queue,$value);   
  9.     }   
  10.     /**(尾部)出队**/   
  11.     public function pop()    
  12.     {   
  13.         return array_pop($this->queue);   
  14.     }   
  15.     /**(头部)入队**/   
  16.     public function enq($value)    
  17.     {   
  18.         return array_unshift($this->queue,$value);   
  19.     }   
  20.     /**(头部)出队**/   
  21.     public function deq()    
  22.     {   
  23.         return array_shift($this->queue);   
  24.     }   
  25.     /**清空队列**/   
  26.     public function makeEmpty()    
  27.     {   
  28.         return unset($this->queue);   
  29.     }   
  30. }   
  31. class DoubleDueue    
  32. {   
  33.     public $queue = array();   
  34.     
  35.     public function push($value)    
  36.     {   
  37.         return $this->queue[] = $value;   
  38.     }   
  39.     public function pop()    
  40.     {   
  41.         $count = $this->count();   
  42.         if($count >= 1)    
  43.         {   
  44.             $value = $this->queue[$count-1];   
  45.             unset($this->queue[$count-1]);   
  46.             return $value;   
  47.         }   
  48.         else   
  49.         {   
  50.             return false;   
  51.         }   
  52.     }   
  53.     public function enq($value)    
  54.     {   
  55.         /*不好做*/   
  56.     }   
  57.     public function deq()    
  58.     {   
  59.         /*不好做*/   
  60.     }   
  61.     public function count()    
  62.     {   
  63.         return count($this->queue);   
  64.     }   
  65.     public function makeEmpty()    
  66.     {   
  67.         return unset($this->queue);   
  68.     }   
  69. }   
  70. ?>  

貌似用这四个函数就行

  1. array_push — 将一个或多个单元压入数组的末尾(入栈)  
  2. array_unshift — 在数组开头插入一个或多个单元  
  3. array_pop — 将数组最后一个单元弹出(出栈)  
  4. array_shift — 将数组开头的单元移出数组 
posted on 2011-09-19 05:35  之乎者也2011 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/wrmfw/archive/2011/09/19/2180860.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值