PHP双向队列,双端队列代码
2016-07-22 00:47
651 查看
<?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();
相关文章推荐
- 一个高性能的FTP客户端
- php 字符串长度的解释
- PHP模拟登录并获取数据
- php rsa加密解密实例
- php如何执行非缓冲查询API
- golang与php实现计算两个经纬度之间距离的方法
- golang与PHP输出excel示例
- php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
- php学习笔记之static的问题
- php学习笔记之 array+array 和 array_merge
- php学习笔记之list()赋值问题及each()结合遍历
- PHP配置xdebug不成功的问题
- PHP实现文件下载断点续传
- 1.CGI 简介
- php-自动生成sql语句
- PHP-无限级分类(迭代法创建)
- PHP 一致性Hash
- 最简单的php文件上传
- 主题:vsftpd之虚拟用户
- 编译部署LAMP+xcache (php-fpm模式)