PHP简单双向队列实现

这是一个简单的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)));
 ?>




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值