• 爱情文章
  • 亲情文章
  • 友情文章
  • 生活随笔
  • 校园文章
  • 经典文章
  • 人生哲理
  • 励志文章
  • 搞笑文章
  • 心情日记
  • 英语文章
  • 范文大全
  • 作文大全
  • 新闻阅读
  • 当前位置: 山茶花美文网 > 爱情文章 > 正文

    PHP,数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例|数据结构栈和队列

    时间:2020-05-14来源:山茶花美文网 本文已影响 山茶花美文网手机站

    这篇文章主要介绍了PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例,需要的朋友可以参考下

    队列这种数据结构更简单,就像我们生活中排队一样,它的特性是先进先出(FIFO)。

    PHP SPL中SplQueue类就是实现队列操作,和栈一样,它也可以继承双链表(SplDoublyLinkedList)轻松实现。

    SplQueue类摘要如下:

    SplQueue简单使用如下:

    代码如下:

    $queue = new SplQueue();

    /**

    * 可见队列和双链表的区别就是IteratorMode改变了而已,栈的IteratorMode只能为:

    * (1)SplDoublyLinkedList::IT_MODE_FIFO | SplDoublyLinkedList::IT_MODE_KEEP (默认值,迭代后数据保存)

    * (2)SplDoublyLinkedList::IT_MODE_FIFO | SplDoublyLinkedList::IT_MODE_DELETE (迭代后数据删除)

    */

    $queue->setIteratorMode(SplDoublyLinkedList::IT_MODE_FIFO | SplDoublyLinkedList::IT_MODE_DELETE);

    //SplQueue::enqueue()其实就是 SplDoublyLinkedList::push()

    $queue->enqueue("a");

    $queue->enqueue("b");

    $queue->enqueue("c");

    //SplQueue::dequeue()其实就是 SplDoublyLinkedList::shift()

    print_r($queue->dequeue());

    foreach($queue as $item) {

    echo $item . PHP_EOL;

    }

    print_r($queue);

    而优先队列SplPriorityQueue是基于堆(后文介绍)实现的。

    SplPriorityQueue的类摘要如下:

    SplPriorityQueue简单使用:

    ?

    1

    • PHP,数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例|数据结构栈和队列 相关文章:
    • 爱情文章
    • 亲情文章
    • 友情文章
    • 随笔
    • 哲理
    • 励志
    • 范文大全