php splqueue 5.5安装,解析PHP标准库SPL数据结构
SPL提供了双向链表、堆栈、队列、堆、降序堆、升序堆、优先级队列、定长数组、对象容器
SplQueue 队列类
进出异端,先进先出
<?php $obj = new SplQueue();//插入一个节点到top位置$obj->enqueue(1);
$obj->enqueue(2);
$obj->enqueue(3);/**
SplQueue Object
(
[flags:SplDoublyLinkedList:private] => 4
[dllist:SplDoublyLinkedList:private] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
)
*/$obj->offsetSet(0,'C');/**
SplQueue Object
(
[flags:SplDoublyLinkedList:private] => 4
[dllist:SplDoublyLinkedList:private] => Array
(
[0] => 'C'
[1] => 2
[2] => 3
)
)
*/$obj->rewind();//从队列中返回并删除bottom位置的元素$obj->dequeue();/**
'C'
SplQueue Object
(
[flags:SplDoublyLinkedList:private] => 4
[dllist:SplDoublyLinkedList:private] => Array
(
[0] => 2
[1] => 3
)
)
*/复制代码
SplStack 堆栈类
单端进出时,后进先出,先进后出
$obj = new SplStack();/**
SplStack Object
(
[flags:SplDoublyLinkedList:private] => 6
[dllist:SplDoublyLinkedList:private] => Array
(
)
)
*///向堆栈放入一个节点到top位置$obj->push(1);
$obj->push(2);
$obj->push(3);/**
SplStack Object
(
[flags:SplDoublyLinkedList:private] => 6
[dllist:SplDoublyLinkedList:private] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
)
*///堆栈的offset = 0 是Top所在的位置,offset = 1 是top节点靠近bottom位置的相邻节点$obj->offsetSet(0,'C');/**
SplStack Object
(
[flags:SplDoublyLinkedList:private] => 6
[dllist:SplDoublyLinkedList:private] => Array
(
[0] => 1
[1] => 2
[2] => 'C'
)
)
*/$obj->offsetSet(1,'B');/**
SplStack Object
(
[flags:SplDoublyLinkedList:private] => 6
[dllist:SplDoublyLinkedList:private] => Array
(
[0] => 1
[1] => 'B'
[2] => 'C'
)
)
*///堆栈的rewind使指针指向top节点,而双向链表的rewind指向bottom节点$obj->rewind();//堆栈的next是使指针向bottom方向相邻的节点移动一位,而链表是向top方向移动$obj->next();//遍历堆栈$obj->rewind();while($obj->valid()){ echo $obj->key().'=>'.$obj->current();
$obj->next();
}/**
2=>'C'
1=>'B'
0=>1
*///从堆栈中取出top位置的节点并删除$obj->pop();复制代码
SplDoublyLinkedList 双向链表类
$obj = new SplDoublyLinkedList();//SplDoublyLinkedList Object ( [flags:SplDoublyLinkedList:private] => 0 [dllist:SplDoublyLinkedList:private] => Array ( ) )//把新的节点数据添加到链表的顶部Top$obj->push(1);
$obj->push(2);
$obj->push(3);//把新的节点数据添加到链表底部bottom$obj->unshift(4);/**
SplDoublyLinkedList Object
(
[flags:SplDoublyLinkedList:private] => 0
[dllist:SplDoublyLinkedList:private] => Array
(
[0] => 4
[1] => 1
[2] => 2
[3] => 3
)
)
*///在没有调用rewind()方法之前输出为nullecho 'current'.$obj->current();//输出: null//把指针指向bottom节点$obj->rewind();//获取当前指针指向的节点$obj->current();//输出: 4//将执行挪到下一个$obj->next();
$obj->current();//输出: 1$obj->prev();
$obj->current();//输出: 4//越界了$obj->next();
$obj->next();
$obj->next();
$obj->next();
$obj->current();//输出: null//判断当前节点是否有效$obj->valid()//输出: false$obj->prev();
$obj->valid()//输出: true$obj->shift();//把top节点从链表中删除并返回$obj->pop();//输出 3//把bottom节点从链表中删除并返回$obj->shift();//输出 4//返回top节点$obj->top();//返回bottom节点$obj->bottom();复制代码
感谢您的阅读,如果对您有帮助,欢迎关注”CRMEB”。码云上有我们开源的商城项目,知识付费项目,均是基于PHP+vue开发,学习研究欢迎使用,关注我们保持联系!
想了解更多编程学习,敬请关注php培训栏目!
php splqueue 5.5安装,解析PHP标准库SPL数据结构相关推荐
- php+spl+栈,PHP SPL标准库之数据结构栈(SplStack)介绍
PHP SPL标准库之数据结构栈(SplStack)介绍2020-06-13 22:01:42 栈(Stack)是一种特殊的线性表,因为它只能在线性表的一端进行插入或删除元素(即进栈和出栈) SplS ...
- php 查看spl,PHP使用标准库spl实现的观察者模式示例
本文实例讲述了PHP使用标准库spl实现的观察者模式.分享给大家供大家参考,具体如下: 前面使用纯php实现了一个观察者模式(php观察者模式), 现在使用php标准库spl在次实现观察者模式,好处是 ...
- CC++初学者编程教程(3) 安装VS2010 boost标准库开发环境
1. BOOST编译过程非常复杂,目前为了学习BOOST,首先搭建基于VS2010的BOOST开发环境. Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程 ...
- vs2010c语言安装,VS2010 boost标准库开发环境安装教程
分享VS2010 boost标准库开发环境安装教程 1. BOOST编译过程非常复杂,目前为了学习BOOST,首先搭建基于VS2010的BOOST开发环境. Boost库是一个可移植.提供源代码的C+ ...
- 解决一个国际化标准库的问题
W3A系统缺乏亮点,突发奇想想到一个新的东西,别人没做过的功能,准备尝试下. 居然发现该功能缺乏一些QT库,瞬间茫然了,开始了这个解决之旅. 这个是报的错误: Unable to load libra ...
- 小白入门——Python标准库和第三方库简介
首先简要介绍如何查看python库安装位置,常见Python标准库和常见Python第三方库简介. 查看python库安装位置 1.使用pip list查看 在cmd中输入python -m pip ...
- Python标准库和第三方库简介
Python标准库和第三方库简介 先简要介绍如何查看python库安装位置,常见Python标准库和常见Python第三方库简介. 查看python库安装位置 1.使用pip list查看 在cmd中 ...
- java stl stack_C++标准库之stack
C++库以提供"模板"为主.所谓模板,是指不必预先制定类型的函数或类.我们可以借助STL(标准模板库 Standard Template Library, STL)提供的高效算法来 ...
- Python 标准库之 xml.etree.ElementTree xml解析
Python 标准库之 xml.etree.ElementTree Python中有多种xml处理API,常用的有xml.dom.*模块.xml.sax.*模块.xml.parser.expat模块和 ...
最新文章
- PL SQL笔记(三)
- 录入键盘字母输入并将小写变为大写
- 进阶学习(3.14) Strategy Pattern 策略模式
- require.js基本认识
- 【☢️伤害性不高,侮辱性极强!☢️】Win10更新21H1后关闭右下角天气和新闻
- vue 判断同一数组内的值是否一直_前端代码+后端API,值得一学的Vue高仿音乐播放器实战项目
- 4.边缘光照的描边shader
- 划分用户故事(user-story)的原则
- 获取要素集中字段的唯一值
- Arduino笔记-定时器中断(MsTimer2库使用)
- modbus连续读取时数据不正确_维纶触摸屏控制变频器是通过触摸屏与变频器之间的Modbus通信实现...
- js 密码强弱的实现
- 记一次代码被公司电脑加密后,编译不通过
- 韩顺平泰牛php2016,2016 泰牛程序员 韩顺平 PHP 大牛班 Div Css课程
- 大数据之HBase 实战微博系统 完整使用 (第六章)
- 套件端口 群晖_群晖套件重装过程中提示端口被占用的解决方案
- matlab 文本框方向,ppt文本框文字方向为所有文字旋转的设置方法
- 中国第一大微商TST涉嫌传销案听证会结束
- jQuery学习理解(详细)
- 商业智能BI:打破数据孤岛,打造企业数字化转型新引擎