1,什么是双向队列
deque,全名double-ended queue,是一种具有队列和栈的性质的数据结构。
双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。
双向队列(双端队列)就像是一个队列,但是可以在任何一端添加或移除元素。
参考:http://zh.wikipedia.org/zh-cn/%E5%8F%8C%E7%AB%AF%E9%98%9F%E5%88%97
2,php实现双向队列的代码
class DoubleQueue - {
- public $queue = array();
-
- /**(尾部)入队 **/
- public function addLast($value)
- {
- return array_push($this->queue,$value);
- }
- /**(尾部)出队**/
- public function removeLast()
- {
- return array_pop($this->queue);
- }
- /**(头部)入队**/
- public function addFirst($value)
- {
- return array_unshift($this->queue,$value);
- }
- /**(头部)出队**/
- public function removeFirst()
- {
- return array_shift($this->queue);
- }
- /**清空队列**/
- public function makeEmpty()
- {
- unset($this->queue);
- }
-
- /**获取列头**/
- public function getFirst()
- {
- return reset($this->queue);
- }
/** 获取列尾 **/ - public function getLast()
- {
- return end($this->queue);
- }
/** 获取长度 **/ - public function getLength()
- {
- return count($this->queue);
- }
-
- }
|