Ejemplo n.º 1
0
<?php

$h = new SplMaxHeap();
// errors
try {
    $h->extract();
} catch (RuntimeException $e) {
    echo "Exception: " . $e->getMessage() . "\n";
}
$h->insert(1);
$h->insert(2);
$h->insert(3);
$h->insert(3);
$h->insert(3);
echo $h->count() . "\n";
echo $h->extract() . "\n";
echo $h->extract() . "\n";
echo $h->extract() . "\n";
echo $h->extract() . "\n";
echo $h->extract() . "\n";
echo $h->count() . "\n";
echo "--\n";
$b = 4;
$h->insert($b);
$b = 5;
$h2 = clone $h;
echo $h->extract() . "\n";
echo $h2->extract() . "\n";
?>
===DONE===
<?php 
Ejemplo n.º 2
0
$heap->insert('5');
$heap->insert('4');
// $heap = new SplPriorityQueue();
// insert($value, $priority)
// 优先队列插入新值
//$heap->insert('A', '3');
//$heap->insert('B', '1');
//$heap->insert('C', '2');
//$heap->insert('D', '5');
//$heap->insert('E', '4');
// isEmpty()
// 判断该堆是否为空
$heap->isEmpty();
// count()
// 获得堆值的数量
$heap->count();
// key()
// 返回当前节点的索引值
$heap->key();
// valid()
// 判断堆中还是否有其他节点
$heap->valid();
// rewind()
// 返回首节点,在堆中是空操作。因为堆是二叉树,rewind始终会在当前位置而不移动
$heap->rewind();
// current()
// 获得当前节点
$heap->current();
// next()
// 指针移向下一个节点
$heap->next();
Ejemplo n.º 3
0
 public function count()
 {
     return -parent::count();
 }
<?php

$data_provider = array(new stdClass(), array(), true, "string", 12345, 1.2345, NULL);
foreach ($data_provider as $input) {
    $h = new SplMaxHeap();
    var_dump($h->count($input));
}