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 总书记与代表委员的暖心对话 7902809
- 2 华为离职“天才少年”官宣刷屏 7942271
- 3 点了外卖发现是警察叔叔送来的 7827560
- 4 两会热议破解企业“生长痛” 7789688
- 5 2000年前老旧小区纳入城市更新改造 7681341
- 6 厚衣服先别收!气温过山车又要发车了 7597652
- 7 大学退休教授63小时卖出753台问界 7483963
- 8 《哪吒2》超《复联3》成全球票房第6 7330076
- 9 AI回答存多少钱才可以潇洒退休 7225012
- 10 就业是民生的头等大事 7125031