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 旧物换新 万亿市场添“活力” 7904006
- 2 印度警方称坠机事故有1名幸存者 7808089
- 3 幸存者跳机逃生 自行从残骸中走出 7712259
- 4 中国外贸在复杂环境中稳健前行 7618187
- 5 印度坠机事故致超290人死亡 7524248
- 6 B站崩了 7425714
- 7 网警提醒:高考后考生家长仍需警惕 7328791
- 8 坠毁客机乘客登机前发视频:再见印度 7233791
- 9 42岁百万网红“草帽姐”确诊肝病 7138067
- 10 众多明星走红毯 王子文不慎摔倒 7046694