PHP简单双向队列实现

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xuexueenen/article/details/51527483

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




猜你喜欢

转载自blog.csdn.net/xuexueenen/article/details/51527483