<?php
class node {
var $key; var $value; var $left; var $right;
}
class binsearch {
var $root = NULL;
function binsearch($elements) {
foreach ($elements as $key => $value) {
$this->add_value($key, $value);
}
echo "<pre>", substr(var_export($this->root, true), 0, 190), "\n...",
substr(var_export($this->root, true), -40), "</pre>";
}
function add_value($key, $value) {
$ptr = &$this->root;
while ($ptr != NULL) {
if ($key < $ptr->key) {
$ptr = &$ptr->left;
} else {
$ptr = &$ptr->right;
}
}
$ptr = new node;
$ptr->key = $key;
$ptr->value = $value;
$ptr->left = NULL;
$ptr->right = NULL;
}
function get_value($key) {
$ptr = &$this->root;
while ($key != $ptr->key && $ptr != NULL) {
if ($key < $ptr->key) {
$ptr = &$ptr->left;
} else {
$ptr = &$ptr->right;
}
}
return $ptr ? $ptr->value : FALSE;
}
}
?>