在Tp5中使用SPL数据结构SplDoublyLinkedList(双向链表)
来源:互联网 发布:知乎 陈廖宇 编辑:程序博客网 时间:2024/06/16 12:56
在tp5中引入SplDoublyLinkedList
namespace app\index\controller;use SplDoublyLinkedList;//引入双向链表class Index{ public function index() { $obj = new SplDoublyLinkedList();//实例化双向链表 } }
操作
当前节点操作:
rewind:链表指针第一个节点
next:bottom-top,移动下一个节点
prev:top-bottom,移动到上一个节点
valid:如果当前节点是有效节点的话,返回true
1.rewind
代码
<?phpnamespace app\index\controller;use SplDoublyLinkedList;//引入双向链表class Index{ public function index() { $obj = new SplDoublyLinkedList();//实例话双向链表 $obj -> push('g'); $obj -> push('y'); $obj -> push('z'); $obj -> rewind(); echo '我是指针,我现在所在的位置是:'.$obj -> current(); } }
结果
2.next
<?phpnamespace app\index\controller;use SplDoublyLinkedList;//引入双向链表class Index{ public function index() { $obj = new SplDoublyLinkedList();//实例话双向链表 $obj -> push('g'); $obj -> push('y'); $obj -> push('z'); $obj -> rewind(); $obj -> next(); echo '我是指针,我现在所在的位置是:'.$obj -> current(); } }
结果
3.prev:同上相反
增加节点操作
push:向链表中添加一个节点
unshift:向链表中塞一个节点
1.push
代码
<?phpnamespace app\index\controller;use SplDoublyLinkedList;//引入双向链表class Index{ public function index() { $obj = new SplDoublyLinkedList();//实例话双向链表 $obj -> push(1); $obj -> push(2); $obj -> push(3); dump($obj); } }
运行结果
2.unshift
代码
<?phpnamespace app\index\controller;use SplDoublyLinkedList;//引入双向链表class Index{ public function index() { $obj = new SplDoublyLinkedList();//实例话双向链表 $obj -> push(1); $obj -> push(2); $obj -> push(3); $obj -> unshift(10); dump($obj); } }
结果
也就是说,塞入元素的话,是塞入到bottom
删除节点操作
pop和shift:对特定节点进行删除
1.pop
移除top,但是对指针位置没有影响 如果指针位置正好在top的话,移除之后指针指向无效元素
定位操作
bottom:链表的尾部,第一个添加的节点
top:链表的头部,最后一个添加的节点
特定节点操作
offsetExists:查找
offsetGet:获得
offsetSet:更新
offsetUnset:删除
阅读全文
0 0
- 在Tp5中使用SPL数据结构SplDoublyLinkedList(双向链表)
- php标准库 SPL 数据结构之-----SplDoublyLinkedList(双向链表)
- 数据结构之双向链表(SplDoublyLinkedList)
- php数据结构之双向链表(SplDoublyLinkedList)
- TP5+SPl(堆栈)继承自SplDoublyLinkedList类的SplStack类
- PHP之双向链表(SplDoublyLinkedList)简介
- 关于PHP-SPL中SplDoublyLinkedList学习随记
- php标准库(SPL)-数据结构(一)-SplDoublyLinkedList详解
- 数据结构之SplDoublyLinkedList类
- TP5+SPL迭代器--MultipleIterator
- TP5+SPL----FilesystemIterator(迭代器)
- reids中内部数据结构->双向链表
- 使用java实现双向链表数据结构
- 数据结构--双向链表
- 数据结构-双向链表
- 数据结构-----双向链表
- 数据结构-双向链表
- 【数据结构】双向链表
- gapdebug problem loading url
- AndroidStudio Gradle构建项目报错:Error:The first result from the daemon was empty
- 分布式事务解决方案
- Android 版本更新
- SDSC 2017 Day 5 T3
- 在Tp5中使用SPL数据结构SplDoublyLinkedList(双向链表)
- request.getcontextPath() 详解
- CentOS7.3下安装Cloudera Manager5.11.1
- 2017易观A10峰会唤醒“源力” 将用户数据有价值地利用起来!
- Android折线图
- 漫画算法:最小栈的实现
- 【算法入门竞赛经典】【7.2枚举排列】
- PHP项目中可能用到的函数(持续更新)
- django基础之study