php专区

 首页 > php专区 > PHP进阶 > 算法 > PHP SPL标准库之数据结构栈(SplStack)

PHP SPL标准库之数据结构栈(SplStack)

分享到:
【字体:
导读:
         摘要:php的SPL提供了些数据结构基本类型的实现,虽然我们可以使用传统的变量类型来描述数据结构,例如用数组来描述堆栈...

PHP SPL标准库之数据结构栈(SplStack)

栈(Stack)是一种特殊的线性表,因为它只能在线性表的一端进行插入或删除元素(即进栈和出栈)

SplStackSplStack就是继承双链表(SplDoublyLinkedList)实现栈。

类摘要如下:

splstack.png

 简单使用如下:


//把栈想象成一个颠倒的数组
$stack = new SplStack();
/**
 * 可见栈和双链表的区别就是IteratorMode改变了而已,栈的IteratorMode只能为:
 * (1)SplDoublyLinkedList::IT_MODE_LIFO | SplDoublyLinkedList::IT_MODE_KEEP  (默认值,迭代后数据保存)
 * (2)SplDoublyLinkedList::IT_MODE_LIFO | SplDoublyLinkedList::IT_MODE_DELETE (迭代后数据删除)
 */
$stack->setIteratorMode(SplDoublyLinkedList::IT_MODE_LIFO | SplDoublyLinkedList::IT_MODE_DELETE);
$stack->push('a');
$stack->push('b');
$stack->push('c');
 
$stack->pop(); //出栈
 
$stack->offsetSet(0, 'first');//index 为0的是最后一个元素
 
foreach($stack as $item) {
    echo $item . PHP_EOL; // first a
}
 
print_R($stack); //测试IteratorMode

PHP SPL标准库之数据结构栈(SplStack)
分享到:
谈谈PHP树生成迷宫及A*自动寻路算法
谈谈PHP树生成迷宫及A*自动寻路算法 迷宫算法是采用树的深度遍历原理,这样生成的迷宫相当的细,而且死胡同数量相对较少! 任意两点之间都存在唯一的一条通路。 至于A*寻路算法是最大众化的一全自动寻路算法 完整代码已上传, http://download.csdn.net/detail/hello_katty/8885779 ,...
一个Python实现的精简版遗传算法
一个Python实现的精简版遗传算法 本文使用Python实现的精简版遗传算法,算法中仅采用变异算子而没有使用交叉算子,但是进化依然很有效,具体源代码如下: from string import ascii_lowercase from random import choice, random target = list("welcome to http://www.cnhup.com") charset = ascii_lower...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……