使用 PHP SplDoublyLinkedList

PHP 标准库(SPL)有一个双链表的实现,称为 SplDoublyLinkedList。如果我们使用的是内置类,就不需要自己实现双链表。双链表的实现实际上也可以用作堆栈和队列。双链表的 PHP 实现有很多附加功能。以下是 SplDoublyLinkedList 的一些常见功能:

方法 描述

Add

在指定索引中添加一个新节点

Bottom

从列表开头偷看一个节点

Count

返回列表的大小

Current

返回当前节点

getIteratorMode

返回迭代模式

setIteratorMode

设置迭代模式。例如,后进先出、先进先出等

Key

返回当前节点索引

next

移动到下一个节点

pop

从列表末尾弹出一个节点

prev

移动到上一个节点

push

在列表末尾添加一个新节点

rewind

将迭代器倒退回顶部

shift

从链表开头移动一个节点

top

从列表末尾偷看一个节点

unshift

在列表中预置一个元素

valid

检查列表中是否还有其他节点

现在,让我们使用 SplDoublyLinkedList 为书名应用程序编写一个小程序:

Unresolved include directive in modules/ROOT/pages/ch03/ch3-10.adoc - include::example$Chapter03/4.php[]

前面的代码将有以下输出:

Introduction to Algorithm
Introduction to Calculus
Introduction to PHP and Data structures
Introduction to Graph Theory
Programming Intelligence
Mediawiki Administrative tutorial guide

总结

链表是用于解决不同问题的最常用数据结构之一。无论是用于堆栈、队列、优先级队列,还是用于实现复杂的图算法,链表都是一种非常方便的数据结构,可以解决你可能发现的任何问题。在本章中,我们探讨了单链表、双链表和循环链表的所有可能细节,以及它们的复杂性分析。在接下来的章节中,我们将利用链表来实现不同的数据结构和编写算法。