PHP SPL标准库之数据结构堆(SplHeap)简单使用实例


Posted in PHP onMay 12, 2015

堆(Heap)就是为了实现优先队列而设计的一种数据结构,它是通过构造二叉堆(二叉树的一种)实现。根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。二叉堆还常用于排序(堆排序)。
如下:最小堆(任意节点的优先级不小于它的子节点)

PHP SPL标准库之数据结构堆(SplHeap)简单使用实例

看看PHP SplHeap的实现:

PHP SPL标准库之数据结构堆(SplHeap)简单使用实例

显然它是一个抽象类,最大堆(SplMaxHeap)和最小堆(SplMinHeap)就是继承它实现的。最大堆和最小堆并没有额外的方法
SplHeap的简单使用如下:

class MySimpleHeap extends SplHeap
{
  //compare()方法用来比较两个元素的大小,绝对他们在堆中的位置
  public function compare( $value1, $value2 ) {
    return ( $value1 - $value2 );
  }
}
 
$obj = new MySimpleHeap();
$obj->insert( 4 );
$obj->insert( 8 );
$obj->insert( 1 );
$obj->insert( 0 );
 
echo $obj->top(); //8
echo $obj->count(); //4
 
foreach( $obj as $number ) {
 echo $number;
}
PHP 相关文章推荐
实现分十页分向前十页向后十页的处理
Oct 09 PHP
SMARTY学习手记
Jan 04 PHP
发款php蜘蛛统计插件只要有mysql就可用
Oct 12 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
Dec 29 PHP
thinkphp中session和cookie无效的解决方法
Dec 19 PHP
php给每个段落添加空格的方法
Mar 20 PHP
教你在header中隐藏php的版本信息
Aug 10 PHP
php实现的XML操作(读取)封装类完整实例
Feb 23 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
Jun 10 PHP
Laravel框架实现简单的学生信息管理平台案例
May 07 PHP
php实现大文件断点续传下载实例代码
Oct 01 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
Apr 26 PHP
php对数组内元素进行随机调换的方法
May 12 #PHP
PHP SplObjectStorage使用实例
May 12 #PHP
PHP中预定义的6种接口介绍
May 12 #PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
May 12 #PHP
PHP 反射(Reflection)使用实例
May 12 #PHP
PHP Reflection API详解
May 12 #PHP
php通过curl模拟登陆DZ论坛
May 11 #PHP
You might like
BBS(php & mysql)完整版(二)
2006/10/09 PHP
php自定义hash函数实例
2015/05/05 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
2018/04/21 PHP
SuperSlide2实现图片滚动特效
2014/06/20 Javascript
jquery实现的缩略图预览滑块实例
2015/06/25 Javascript
js控制元素显示在屏幕固定位置及监听屏幕高度变化的方法
2015/08/11 Javascript
AngularJS基础 ng-show 指令简单示例
2016/08/03 Javascript
AngularJS中比较两个数组是否相同
2016/08/24 Javascript
vue制作加载更多功能的正确打开方式
2016/10/12 Javascript
微信小程序 wxapp视图容器 view详解
2016/10/31 Javascript
基于bootstrap-datetimepicker.js不支持IE8的快速解决方法
2016/11/07 Javascript
JS手机端touch事件计算滑动距离的方法示例
2017/10/26 Javascript
vue axios 在页面切换时中断请求方法 ajax
2018/03/05 Javascript
vue单文件组件lint error自动fix与styleLint报错自动fix详解
2019/01/08 Javascript
JavaScript简单实现的仿微博留言功能示例
2019/01/17 Javascript
浅谈layui分页控件field参数接收对象的问题
2019/09/20 Javascript
jquery向后台提交数组的代码分析
2020/02/20 jQuery
分享一个常用的Python模拟登陆类
2015/03/29 Python
Windows下实现Python2和Python3两个版共存的方法
2015/06/12 Python
Python入门_学会创建并调用函数的方法
2017/05/16 Python
Pycharm远程调试openstack的方法
2017/11/21 Python
Python绘制3d螺旋曲线图实例代码
2017/12/20 Python
Python文本特征抽取与向量化算法学习
2017/12/22 Python
对python中数组的del,remove,pop区别详解
2018/11/07 Python
Python中正则表达式的用法总结
2019/02/22 Python
使用TFRecord存取多个数据案例
2020/02/17 Python
Python MOCK SERVER moco模拟接口测试过程解析
2020/04/13 Python
基于Python脚本实现邮件报警功能
2020/05/20 Python
美国在线肉类和海鲜配送:Crowd Cow
2020/10/02 全球购物
如何提高SQL Server的安全性
2016/07/25 面试题
岗位廉政承诺书
2014/03/27 职场文书
防沙治沙典型材料
2014/05/07 职场文书
毕业生应聘求职信
2014/07/10 职场文书
2014年“四风”问题个人整改措施
2014/09/17 职场文书
民主评议党员总结
2014/10/20 职场文书
教师文明餐桌光盘行动倡议书
2015/04/28 职场文书