PHP双向队列,双端队列代码
2018-07-20 来源:open-open
<?php /** * User: jifei * Date: 2013-07-30 * Time: 23:12 */ /** * PHP实现双向队列,双端队列 * 双端队列(deque,全名double-ended queue)是一种具有队列和栈性质的数据结构。 * 双端队列中的元素可以从两端弹出,插入和删除操作限定在队列的两边进行。 */ class Deque { public $queue=array(); /** * 构造函数初始化队列 */ public function __construct($queue=array()) { if(is_array($queue)) { $this->queue=$queue; } } /** * 获取第一个元素 */ public function front() { return reset($this->queue); } /** * 获取最后一个元素 */ public function back() { return end($this->queue); } /** * 判断是否为空 */ public function is_empty() { return empty($this->queue); } /** * 队列大小 */ public function size() { return count($this->queue); } /** * 插入到尾 */ public function push_back($val) { array_push($this->queue,$val); } /** * 插入到头 */ public function push_front($val) { array_unshift($this->queue,$val); } /** * 移除最后一个元素 */ public function pop_back() { return array_pop($this->queue); } /** * 移除第一个元素 */ public function pop_front() { return array_shift($this->queue); } /** * 清空队列 */ public function clear() { $this->queue=array(); } } //初始化一个双向队列 $deque=new Deque(array(1,2,3,4,5)); echo $deque->size().PHP_EOL; echo $deque->is_empty().PHP_EOL; echo $deque->front().PHP_EOL; echo $deque->back().PHP_EOL; echo PHP_EOL; //弹出元素测试 echo $deque->pop_back().PHP_EOL; echo $deque->pop_front().PHP_EOL; echo $deque->size().PHP_EOL; echo PHP_EOL; $deque->push_back('a').PHP_EOL; $deque->push_front(0).PHP_EOL; echo PHP_EOL; //插入测试 echo $deque->front().PHP_EOL; echo $deque->back().PHP_EOL; echo $deque->size().PHP_EOL; echo PHP_EOL; //清空测试 $deque->clear(); echo $deque->is_empty();
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
最新资讯
热门推荐