PHP双向队列,双端队列代码 程序员文章站 2024-02-04 14:02:22 ... /** * 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(); 复制代码 PHP 相关标签: PHP双向队列,双端队列代码 上一篇: 对淘宝URL中ID提取的PHP代码_PHP 下一篇: 推荐阅读 php中使用redis队列操作实例代码_PHP php实现双向循环队列--- (实现历史记录的前进后退等功能) php基于双向循环队列实现历史记录的前进后退等功能,队列历史记录 用PHP实现一个双向队列_PHP教程 详解Python的collections模块中的deque双端队列结构 PHP+RabbitMQ实现消息队列的完整代码 详解Python的collections模块中的deque双端队列结构 PHP+RabbitMQ实现消息队列的完整代码 详解Python的collections模块中的deque双端队列结构 php基于双向循环队列实现历史记录的前进后退等功能