<?php

class myHeap extends SplHeap
{
    public function compare($a, $b)
    {
        throw new exception("foo");
    }
}
$h = new myHeap();
try {
    $h->insert(1);
    echo "inserted 1\n";
    $h->insert(2);
    echo "inserted 2\n";
    $h->insert(3);
    echo "inserted 3\n";
} catch (Exception $e) {
    echo "Exception: " . $e->getMessage() . "\n";
}
try {
    $h->insert(4);
    echo "inserted 4\n";
} catch (Exception $e) {
    echo "Exception: " . $e->getMessage() . "\n";
}
try {
    var_dump($h->extract());
} catch (Exception $e) {
    echo "Exception: " . $e->getMessage() . "\n";
}
Exemplo n.º 2
0
        if ($this->allow_compare == true) {
            if ($v1 > $v2) {
                return 1;
            } else {
                if ($v1 < $v2) {
                    return -1;
                } else {
                    return 0;
                }
            }
        } else {
            throw new Exception('Compare exception');
        }
    }
}
$heap = new myHeap();
$heap->insert(1);
$heap->insert(2);
$heap->insert(3);
$heap->insert(4);
$heap->allow_compare = false;
try {
    $heap->extract();
} catch (Exception $e) {
    echo "Compare Exception: " . $e->getMessage() . PHP_EOL;
}
try {
    $heap->top();
} catch (Exception $e) {
    echo "Corruption Exception: " . $e->getMessage() . PHP_EOL;
}
        if ($this->allow_compare == true) {
            if ($v1 > $v2) {
                return 1;
            } else {
                if ($v1 < $v2) {
                    return -1;
                } else {
                    return 0;
                }
            }
        } else {
            throw new Exception('Compare exception');
        }
    }
}
$heap = new myHeap();
$heap->insert(1);
$heap->insert(2);
$heap->insert(3);
$heap->insert(4);
$heap->allow_compare = false;
var_dump($heap->isCorrupted());
try {
    $heap->extract();
} catch (Exception $e) {
    echo "Compare Exception: " . $e->getMessage() . PHP_EOL;
}
try {
    $heap->top();
} catch (Exception $e) {
    echo "Corruption Exception: " . $e->getMessage() . PHP_EOL;
Exemplo n.º 4
0
<?php

class myHeap extends SplHeap
{
    public function compare($a, $b)
    {
        if ($a > $b) {
            $result = 1;
        } else {
            if ($a < $b) {
                $result = -1;
            } else {
                $result = 0;
            }
        }
        return $result;
    }
}
$h = new myHeap();
$in = range(0, 10);
shuffle($in);
foreach ($in as $i) {
    $h->insert($i);
}
foreach ($h as $out) {
    echo $out . "\n";
}
?>
===DONE===
<?php 
exit(0);
Exemplo n.º 5
0
<?php

class myHeap extends SplHeap
{
    public function compare($v1, $v2)
    {
        throw new Exception('');
    }
}
$heap = new myHeap();
var_dump($heap->current());