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规范库SPL数据构造的具体内容,更多请存眷资源魔其它相干文章!
标签: php开发教程 php开发资料 php开发自学 PHP标准库 SPL数据结构
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
抱歉,评论功能暂时关闭!