TP5+SPL SplQueue(队列)

29 篇文章 0 订阅
19 篇文章 1 订阅

简介

队列和堆栈刚好相反,最先进入队列的元素会最先走出队列。 继承自SplDoublyLinkedList类的SplQueue类

操作

enqueue:进入队列
dequeue:退出队列

代码实例

<?php
namespace app\index\controller;
use SplQueue;//引入队列类
class Index
{
    public function index()
    {
        $obj = new SplQueue();//实例化队列类
        $obj -> enqueue('a');//插入一个节点到队列里面的Top位置
        $obj -> enqueue('b');
        $obj -> enqueue('c');
        dump($obj);

        echo "Bottom:".$obj->bottom()."<br/>";
        echo "Top:".$obj->top()."<br/>";

        $obj-> offsetSet(0,'A');//队列里面offset=0是Bottom所在位置,offset=1是Top方向的相邻节点,以此类推
        print_r($obj);

        $obj -> rewind();//队列里面面rewind操作使得指针指向Bottom所在位置的节点

        echo "current:".$obj->current()."<br/>";

        while ($obj->valid()) {
            echo $obj->key()."=>".$obj->current()."<br/>";
            $obj->next();//next操作使得当前指针指向top方向的下一个节点
        }

        echo "dequeue obj:".$obj->dequeue()."<br/>";//dequeue操作从队列中提取bottom位置的节点,并返回.同时从队列脸删除该元素
        dump($obj);
    }   
}

运行结果

object(SplQueue)#4 (2) {
  ["flags":"SplDoublyLinkedList":private] => int(4)
  ["dllist":"SplDoublyLinkedList":private] => array(3) {
    [0] => string(1) "a"
    [1] => string(1) "b"
    [2] => string(1) "c"
  }
}
Bottom:a
Top:c
SplQueue Object ( [flags:SplDoublyLinkedList:private] => 4 [dllist:SplDoublyLinkedList:private] => Array ( [0] => A [1] => b [2] => c ) ) current:A
0=>A
1=>b
2=>c
dequeue obj:A
object(SplQueue)#4 (2) {
  ["flags":"SplDoublyLinkedList":private] => int(4)
  ["dllist":"SplDoublyLinkedList":private] => array(2) {
    [0] => string(1) "b"
    [1] => string(1) "c"
  }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值