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

5年以前  |  阅读数:531 次  |  编程语言:PHP 

堆(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;
    }
 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例