php 数据结构之链表队列


Posted in PHP onOctober 17, 2017

php 链表队列

实例代码:

class Queue{ 
  
  private $last; 
  private $first; 
  private $oldfirst; 
  private static $n=0; 
   
  public function __construct(){ 
    $this->last   = null; 
    $this->first  = null; 
    $this->oldfirst = null; 
  } 
   
  public function push($item){ 
    $this->oldfirst = $this->last; 
    $this->last = new Node(); 
    $this->last->item = $item; 
    $this->last->next = null; 
    if(empty($this->first)){ 
      $this->first = $this->last; 
    }else{ 
      $this->oldfirst->next = $this->last; 
    } 
    self::$n++; 
  } 
   
  public function pop(){ 
    if(self::$n<0){ 
      return null; 
    } 
    $item = $this->first->item; 
    $this->first = $this->first->next; 
    self::$n--; 
    return $item; 
  } 
   
} 
 
class Node{ 
  public $item; 
  public $next; 
} 
 
$Queue = new Queue(); 
$Queue->push("a"); 
$Queue->push("b"); 
$Queue->push("c"); 
echo $Queue->pop().PHP_EOL; 
echo $Queue->pop().PHP_EOL; 
echo $Queue->pop().PHP_EOL; 
echo $Queue->pop().PHP_EOL;

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
PHP 多维数组排序实现代码
Aug 05 PHP
php 分页原理详解
Aug 21 PHP
PHP 5.3新特性命名空间规则解析及高级功能
Mar 11 PHP
基于php设计模式中单例模式的应用分析
May 15 PHP
关于更改Zend Studio/Eclipse代码风格主题的介绍
Jun 23 PHP
CodeIgniter安全相关设置汇总
Jul 03 PHP
PHP实现PDO的mysql数据库操作类
Dec 12 PHP
PHP面试题之文件目录操作
Oct 15 PHP
php实现xml与json之间的相互转换功能实例
Jul 07 PHP
php实现的mongoDB单例模式操作类
Jan 20 PHP
PHP设计模式之模板方法模式定义与用法详解
Apr 02 PHP
Thinkphp5+uploadify实现的文件上传功能示例
May 26 PHP
PHP实现的贪婪算法实例
Oct 17 #PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
Oct 17 #PHP
PHP实现统计所有字符在字符串中出现次数的方法
Oct 17 #PHP
基于PHP-FPM进程池探秘
Oct 17 #PHP
PHP-X系列教程之内置函数的使用示例
Oct 16 #PHP
php封装单文件上传到数据库(路径)
Oct 15 #PHP
PHP多进程编程之僵尸进程问题的理解
Oct 15 #PHP
You might like
PHP similar_text 字符串的相似性比较函数
2010/05/26 PHP
zf框架的session会话周期及次数限制使用示例
2014/03/13 PHP
PHP函数strip_tags的一个bug浅析
2014/05/22 PHP
Smarty模板类内部原理实例分析
2019/07/03 PHP
在jquery中处理带有命名空间的XML数据
2011/06/13 Javascript
JS中产生20位随机数以0-9为例也可以是a-z A-Z
2014/08/01 Javascript
Javascript基础教程之定义和调用函数
2015/01/18 Javascript
JavaScript每天必学之数组和对象部分
2016/09/17 Javascript
使用BootStrapValidator完成前端输入验证
2016/09/28 Javascript
利用jquery实现验证输入的是否是数字、小数,包含保留几位小数
2016/12/07 Javascript
深入理解Vue-cli搭建项目后的目录结构探秘
2017/07/13 Javascript
关于TypeScript模块导入的那些事
2018/06/12 Javascript
详解VUE自定义组件中用.sync修饰符与v-model的区别
2018/06/26 Javascript
bootstrap-table formatter 使用vue组件的方法
2019/05/09 Javascript
JS实现水平遍历和嵌套递归操作示例
2019/08/15 Javascript
[02:43]DOTA2英雄基础教程 圣堂刺客
2013/12/09 DOTA
在Python中移动目录结构的方法
2016/01/31 Python
简单掌握Python的Collections模块中counter结构的用法
2016/07/07 Python
不要用强制方法杀掉python线程
2017/02/26 Python
python之pandas用法大全
2018/03/13 Python
python os用法总结
2018/06/08 Python
利用python实现PSO算法优化二元函数
2019/11/13 Python
python爬取本站电子书信息并入库的实现代码
2020/01/20 Python
python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)
2020/04/08 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
2020/04/20 Python
Python手动或自动协程操作方法解析
2020/06/22 Python
Numpy中np.max的用法及np.maximum区别
2020/11/27 Python
阿提哈德航空官方网站:Etihad Airways
2017/01/06 全球购物
美国电子产品折扣网站:Daily Steals
2017/05/20 全球购物
哥伦比亚加拿大官网:Columbia Sportswear Canada
2020/09/07 全球购物
介绍一下Make? 为什么使用make
2016/07/31 面试题
车贷收入证明范本
2014/01/09 职场文书
融资合作协议书范本
2014/10/17 职场文书
2014年档案管理员工作总结
2014/12/01 职场文书
2015年九一八事变纪念日演讲稿
2015/03/19 职场文书
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
2021/04/04 Servers