# Binary Search Trees Homework Help

A binary search tree labels every node in a binary tree with a single key such that for any node x, as well as nodes within the left subtree of x have keys <= x and all nodes in the right subtree of x have key's >= x

**Left :**A binary search tree.**Right :**A heap but not a binary search tree.

The search tree labeling enables us to find where any key is. Start at the root- if that is not the one we want, search either left or right depending upon whether what we want is <= or >= then root.

Binary search trees store collections associated with items that may be purchased, for example integers. Binary search trees support the following standard operations.

**search(x) :**determines is an item x included in the tree (and if so returns the item).**insert(x) :**adds item x to the collection stored in the tree, if it is not already there.**delete(x) :**removes item x from the collection stored in the

Data structures supporting these operations are called Dictionaries. A simple implementation is to store the items in sorted order in an array. Search(x) is simply a binary search. However, insert(x) and delete(x) are inefficient as, in general, they may require many items to be shifted.