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 推动精神文明建设展现新气象新作为 7904576
- 2 王楚钦孙颖莎世乒赛混双3连冠 7809692
- 3 钟南山谈大S离世:很遗憾 7713244
- 4 特色产业创新发展蝶变成“金招牌” 7618365
- 5 特朗普24小时内连砍三刀 7520982
- 6 300万人选出最丑军训服 新生:天塌了 7428319
- 7 莎头夺冠 刘国梁现场颁奖 7331409
- 8 多位捏捏玩家出现喉咙痛烂手指 7234641
- 9 王楚钦孙颖莎夺冠后都比了3 7135385
- 10 75%在美科学家考虑离开美国 7045544