解析PHP标准库SPL数据结构-php教程

资源魔 34 0

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数据结构

抱歉,评论功能暂时关闭!