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

 更新时间:2015年05月12日 09:14:55   投稿:junjie  
这篇文章主要介绍了PHP SPL标准库之数据结构堆(SplHeap)简单使用实例,本文还同时讲解了最大堆(SplMaxHeap)、最小堆(SplMinHeap)的相关知识,需要的朋友可以参考下

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

看看PHP 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;
}

相关文章

  • ThinkPHP 5.1 跨域配置方法

    ThinkPHP 5.1 跨域配置方法

    今天小编就为大家分享一篇ThinkPHP 5.1 跨域配置方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • Yii 实现数据加密和解密的示例代码

    Yii 实现数据加密和解密的示例代码

    这篇文章主要介绍了Yii 实现数据加密和解密的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境

    配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境

    因为最近要用PHP做个小东西,新学了PHP。结果学PHP只用了2个小时,配置服务器却用了两天,郁闷得想骂人。为了避免以后忘掉,写个博客留底。
    2009-04-04
  • 一个可以找出源代码中所有中文的工具

    一个可以找出源代码中所有中文的工具

    一个可以找出源代码中所有中文的工具...
    2006-10-10
  • Chrome Web App开发小结

    Chrome Web App开发小结

    这篇文章主要分享下自己在开发Web App遇到的问题和过程,以及一些很已经(如何)填平的坑。
    2014-09-09
  • Joomla语言翻译类Jtext用法分析

    Joomla语言翻译类Jtext用法分析

    这篇文章主要介绍了Joomla语言翻译类Jtext用法,结合实例分析了语言翻译类Jtext的基本原理与使用方法,需要的朋友可以参考下
    2016-05-05
  • laravel 模型查询按照whereIn排序的示例

    laravel 模型查询按照whereIn排序的示例

    今天小编就为大家分享一篇laravel 模型查询按照whereIn排序的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • php不使用插件导出excel的简单方法

    php不使用插件导出excel的简单方法

    这篇文章主要介绍了php不使用插件导出excel的简单方法,首先获取需要导出的数据的数组,数组的格式在下面。之后就是定义文件名称和需要导出的excel的样式,最后就是循环数组,输出数据了
    2014-03-03
  • 全面解析PHP面向对象的三大特征

    全面解析PHP面向对象的三大特征

    下面小编就为大家带来一篇全面解析PHP面向对象的三大特征。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • PHP实现的英文名字全拼随机排号脚本

    PHP实现的英文名字全拼随机排号脚本

    这篇文章主要介绍了PHP实现的英文名字全拼随机排号脚本,根据一个需求写出的一个解决方案,需要的朋友可以参考下
    2014-07-07

最新评论