<?php
class node{
public $data;
public $left;
public $right;
}
function search($root,$key,$f){
if(!$root){
$data = array();
$data['p'] = $f;
$data['state'] = false;
return $data;
}else if($key == $root->data){
$data = array();
$data['p'] = $root;
$data['state'] = true;
return $data;
}elseif($key<$root->data){
return search($root->left,$key,$root);
}else{
return search($root->right,$key,$root);
}
}
function insert($root,$key){
$s = search($root,$key,null);
$node = new node();
$node->data = $key;
if(!$s['state']){
if($key<$s['p']->data){
$s['p']->left = $node;
}else{
$s['p']->right = $node;
}
}
}
$arr = array(70,105,115,104,67,46,99,111,109);
$root = new node();
$root->data = 70;
//插入
for($i=1;$i<count($arr);$i++){
insert($root,$arr[$i]);
}
print_r($root);
//搜索是否存在 state false 不存在 true 存在
print_r( search($root,33,null));