PHP SPL的常用数据结构
堆(Heap)就是为了实现优先队列而设计的一种数据结构,它是通过构造二叉堆(二叉树的一种)实现。根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。二叉堆还常用于排序(堆排序)。
如下:最小堆(任意节点的优先级不小于它的子节点)
PHP的SPL提供了些数据结构基本类型的实现,虽然我们可以使用传统的变量类型来描述数据结构,例如用数组来描述堆栈(Strack)然后使用对应的方式 pop 和 push(array_pop()、array_push()),但你得时刻小心,因为毕竟它们不是专门用于描述数据结构的,一次误操作就有可能破坏该堆栈。而SPL的 SplStack 对象则严格以堆栈的形式描述数据,并提供对应的方法。同时,这样的代码应该也能理解它在操作堆栈而非某个数组,从而能让你的同伴更好的理解相应的代码,并且它更快。
栈的实现
$stack = new SplStack();
//入栈
$stack->push('a');
$stack->push('b');
//出栈
echo $stack->pop();
echo $stack->pop();
队列的实现
$queue = new SplQueue();
//入队列
$queue->enqueue('a');
$queue->enqueue('b');
$queue->enqueue('c');
//出队列
echo $queue->dequeue();
echo $queue->dequeue();
echo $queue->dequeue();
最小堆的实现
$heap = new SplMinHeap();
//插入到堆
$heap->insert('a');
$heap->insert('b');
//从堆中提取数据
echo $heap->extract();
echo $heap->extract();
固定长度的数组
$array = new SplFixedArray(5);
$array[1] = 5;
var_dump($array);
来源:本文由程序员之家整合自网络
编辑 | 码哥
图片源于网络,版权归原作者所有
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

随时掌握互联网精彩
赞助链接
排名
热点
搜索指数
- 1 总书记深情寄望电影工作者 7904120
- 2 出轨外国电竞选手女生拟遭学校开除 7808298
- 3 越来越多空姐不用穿高跟鞋 7714287
- 4 气温预报图肉眼可见变热了 7616316
- 5 孙颖莎王曼昱无缘女双冠军 7523992
- 6 蔡国庆点评19岁选手怼了4分钟 7427489
- 7 失业想领补贴发现自己是2家公司老板 7332441
- 8 港大男生用AI制作700多张同学不雅照 7235109
- 9 外卖小哥取货看到2000多单:人都傻了 7135556
- 10 曹格17岁儿子晒照官宣恋情 7045668