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 相关文章推荐
php 上一篇,下一篇文章实现代码与原理说明
May 09 PHP
在smarty中调用php内置函数的方法
Feb 07 PHP
php stream_get_meta_data返回值
Sep 29 PHP
PHP用身份证号获取星座和生肖的方法
Nov 07 PHP
php中的curl使用入门教程和常见用法实例
Apr 10 PHP
Laravel框架中实现使用阿里云ACE缓存服务
Feb 10 PHP
php线性表的入栈与出栈实例分析
Jun 12 PHP
Zend Framework基本页面布局分析
Mar 19 PHP
Zend Framework入门知识点小结
Mar 19 PHP
Joomla实现组件中弹出一个模式(modal)窗口的方法
May 04 PHP
微信支付开发发货通知实例
Jul 12 PHP
分享几种好用的PHP自定义加密函数(可逆/不可逆)
Sep 15 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
Session的工作方式
2006/10/09 PHP
使用php shell命令合并图片的代码
2011/06/23 PHP
php生成html文件方法总结
2014/12/01 PHP
php简单实现多字节字符串翻转的方法
2015/03/31 PHP
学习php设计模式 php实现原型模式(prototype)
2015/12/07 PHP
PHP遍历目录文件的常用方法小结
2017/02/03 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
锋利的jQuery 第三章章节总结的例子
2010/03/23 Javascript
Html中JS脚本执行顺序简单举例说明
2010/06/19 Javascript
JavaScript高级程序设计 DOM学习笔记
2011/09/10 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
javascript使用 concat 方法对数组进行合并的方法
2016/09/08 Javascript
AngularJS学习第二篇 AngularJS依赖注入
2017/02/13 Javascript
jQuery事件与动画基础详解
2017/02/23 Javascript
微信小程序 页面跳转及数据传递详解
2017/03/14 Javascript
Jquery中attr与prop的区别详解
2017/05/27 jQuery
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
2018/11/08 Javascript
[01:16:16]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第二场 1月8日
2021/03/11 DOTA
Python返回真假值(True or False)小技巧
2015/04/10 Python
解决Python中字符串和数字拼接报错的方法
2016/10/23 Python
Numpy数组转置的两种实现方法
2018/04/17 Python
pytorch 彩色图像转灰度图像实例
2020/01/13 Python
python如何调用百度识图api
2020/09/29 Python
详解Python遍历列表时删除元素的正确做法
2021/01/07 Python
美国现代家具购物网站:LexMod
2019/01/09 全球购物
物业管理公司实习生自我鉴定
2013/09/19 职场文书
保险专业自荐信范文
2014/02/20 职场文书
《从现在开始》教学反思
2014/04/15 职场文书
社区禁毒工作方案
2014/06/02 职场文书
餐饮周年庆活动方案
2014/08/14 职场文书
房地产经营管理专业自荐信
2014/09/02 职场文书
2014年乡镇党建工作总结
2014/11/11 职场文书
出租车拒载检讨书
2015/01/28 职场文书
党风廉政建设个人总结
2015/03/06 职场文书
工程部岗位职责范本
2015/04/11 职场文书
python全面解析接口返回数据
2022/02/12 Python