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"; } try { var_dump($h->extract()); } catch (Exception $e) { echo "Exception: " . $e->getMessage() . "\n"; } echo "Recovering..\n"; $h->recoverFromCorruption(); try { var_dump($h->extract()); } catch (Exception $e) { echo "Exception: " . $e->getMessage() . "\n"; } try { var_dump($h->extract()); } catch (Exception $e) { echo "Exception: " . $e->getMessage() . "\n"; } ?> ===DONE===
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; } var_dump($heap->isCorrupted()); $heap->recoverFromCorruption(); var_dump($heap->isCorrupted());