设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
立即注册
只需一步,快速开始
快捷导航
登录
注册
论坛首页
BBS
建站模版
微站设计
虚拟主机
企业邮箱
博客日志
Blog
搜索
搜索
搜索
热搜
长春
优惠
活动
做网站
本版
帖子
用户
本版
帖子
用户
请
登录
后使用快捷导航
没有帐号?
立即注册
道具
勋章
任务
留言板
设置
我的收藏
退出
时时商务社区
»
论坛首页
›
建站资源
›
建站技术
›
PHP SPL标准库之数据结构栈(SplStack)介绍
返回列表
查看:
628
|
回复:
0
PHP SPL标准库之数据结构栈(SplStack)介绍
[复制链接]
新格网络
当前离线
积分
7789
2617
主题
2617
帖子
7789
积分
论坛元老
论坛元老, 积分 7789, 距离下一级还需 9992210 积分
论坛元老, 积分 7789, 距离下一级还需 9992210 积分
积分
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空间
腾讯微博
腾讯朋友
收藏
0
回复
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
用户反馈
客户端