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 更好发挥先行探路、引领示范作用 4996924
- 2 官方:下周一或发生小到中等地磁暴 4920213
- 3 夫妻患艾滋20年 孩子已经上高中 4843339
- 4 做好儿童呼吸道疾病诊疗服务 4712887
- 5 陈志朋回应被指偷税漏税 4679621
- 6 90后小伙用竹子造自行车 出口6万台 4522188
- 7 寻子亿万富豪和儿子吃团圆宴 4433045
- 8 42岁女子20天断崖式衰老 4381738
- 9 以色列售台20套铁穹系统?假的 4299931
- 10 天文专家解释北京出现极光 4115373