Exemplo n.º 1
0
<?php

// override heap to force corruption by throwing exception in compare
class SplMinHeap2 extends SplMinHeap
{
    public function compare($a, $b)
    {
        throw new Exception('Corrupt heap');
    }
}
$h = new SplMinHeap2();
// insert 2 elements to hit our overridden compare
$h->insert(4);
try {
    $h->insert(5);
} catch (Exception $e) {
}
// call top, should fail with corrupted heap
try {
    $h->top();
} catch (Exception $e) {
    echo $e->getMessage();
}
Exemplo n.º 2
0
<?php

class SplMinHeap2 extends SplMinHeap
{
    public function compare($a, $b)
    {
        return -parent::compare($a, $b);
    }
}
$h = new SplMinHeap2();
$h->insert(1);
$h->insert(6);
$h->insert(5);
$h->insert(2);
var_dump($h->top());
class SplMaxHeap2 extends SplMaxHeap
{
    public function compare($a, $b)
    {
        return -parent::compare($a, $b);
    }
}
$h = new SplMaxHeap2();
$h->insert(1);
$h->insert(6);
$h->insert(5);
$h->insert(2);
var_dump($h->top());
Exemplo n.º 3
0
<?php

class SplMinHeap2 extends SplMinHeap
{
    public function testCompare1()
    {
        return parent::compare();
    }
    public function testCompare2()
    {
        return parent::compare(1);
    }
    public function testCompare3()
    {
        return parent::compare(1, 2, 3);
    }
}
$h = new SplMinHeap2();
$h->testCompare1();
$h->testCompare2();
$h->testCompare3();