Home  >  Article  >  Backend Development  >  PHP SPL标准库之数据结构堆(SplHeap)简单使用实例_PHP教程

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

WBOY
WBOYOriginal
2016-07-13 09:53:43833browse

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

   这篇文章主要介绍了PHP SPL标准库之数据结构堆(SplHeap)简单使用实例,本文还同时讲解了最大堆(SplMaxHeap)、最小堆(SplMinHeap)的相关知识,需要的朋友可以参考下

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

  如下:最小堆(任意节点的优先级不小于它的子节点)

  看看PHP SplHeap的实现:

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

  SplHeap的简单使用如下:

  ?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

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;

}

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1000101.htmlTechArticlePHP SPL标准库之数据结构堆(SplHeap)简单使用实例 这篇文章主要介绍了PHP SPL标准库之数据结构堆(SplHeap)简单使用实例,本文还同时讲解了最大堆...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn