<?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"; }
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;
<?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);
<?php class myHeap extends SplHeap { public function compare($v1, $v2) { throw new Exception(''); } } $heap = new myHeap(); var_dump($heap->current());