BINARY TREE OPERATIONS



function search(Tree T, item x) returns Tree  
   if  T = NULL  $\rightarrow$  
      return NULL  
   | x  <  T->elem   $\rightarrow$  
      return search(T->left, item)  
   | x  >  T->elem  $\rightarrow$  
      return search(T->right, item)  
   | x  =  T->elem  $\rightarrow$  
      return T 
   fi 
end  search



procedure insert(item x)  
   if  root = NULL  $\rightarrow$ 
      root  :=  new(Tree) 
      root->elem  :=  x
      root->left  :=  root->right  :=  NULL 
   | root-> $\neq$ NULL  $\rightarrow$  
      insert_helper(root, x) 
   fi 
end  insert
 


procedure insert_helper (Tree T, item x) if  $x ~\leq~ T$->elem   $\rightarrow$ if  T->left = NULL  $\rightarrow$ T->left  :=  new(Tree) T->left->elem  :=  x T->left->left  :=  T->left->right  :=  NULL | T->left $\neq$ NULL  $\rightarrow$ insert_helper(T->left, item) fi | x  >  T->elem  $\rightarrow$ // code similar to above fi end  insert




Bernard Waxman
9/30/1997