找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 626|回复: 0
打印 上一主题 下一主题

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

[复制链接]

2617

主题

2617

帖子

7789

积分

论坛元老

Rank: 8Rank: 8

积分
7789
跳转到指定楼层
楼主
发表于 2018-2-14 05:46:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

SplStack就是继承双链表(SplDoublyLinkedList)实现栈。
类摘要如下:

简单使用如下:
//把栈想象成一个颠倒的数组
$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 array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
  • PHP中使用数组实现堆栈数据结构的代码
  • 关于PHP堆栈与列队的学习
  • php线性表的入栈与出栈实例分析
  • 基于PHP实现栈数据结构和括号匹配算法示例
  • PHP使用栈解决约瑟夫环问题算法示例
  • PHP基于堆栈实现的高级计算器功能示例
  • PHP栈的定义、入栈出栈方法及基于堆栈实现的计算器完整实例
  • PHP实现基于栈的后缀表达式求值功能
  • PHP实现的栈数据结构示例【入栈、出栈、遍历栈】
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端