Package gaiasky.util
Class BinarySearchTree
java.lang.Object
gaiasky.util.BinarySearchTree
Implements an unbalanced binary search tree.
Note that all "matching" is based on the compareTo method.
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionfind(Comparable x)
Find an item in the tree.Find the start of the interval where x is in.findMax()
Find the largest item in the tree.findMin()
Find the smallest item in the tree.protected gaiasky.util.BinaryNode
findMin(gaiasky.util.BinaryNode t)
Internal method to find the smallest item in a subtree.void
insert(Comparable x)
Insert into the tree.protected gaiasky.util.BinaryNode
insert(Comparable x, gaiasky.util.BinaryNode t)
Internal method to insert into a subtree.boolean
isEmpty()
Test if the tree is logically empty.static void
void
Make the tree logically empty.void
remove(Comparable x)
Remove from the tree..protected gaiasky.util.BinaryNode
remove(Comparable x, gaiasky.util.BinaryNode t)
Internal method to remove from a subtree.void
Remove minimum item from the tree.protected gaiasky.util.BinaryNode
removeMin(gaiasky.util.BinaryNode t)
Internal method to remove minimum item from a subtree.
-
Field Details
-
root
protected gaiasky.util.BinaryNode rootThe tree root.
-
-
Constructor Details
-
BinarySearchTree
public BinarySearchTree()Construct the tree.
-
-
Method Details
-
insert
Insert into the tree.- Parameters:
x
- the item to insert.- Throws:
RuntimeException
- if x is already present.
-
remove
Remove from the tree..- Parameters:
x
- the item to remove.- Throws:
RuntimeException
- if x is not found.
-
removeMin
public void removeMin()Remove minimum item from the tree.- Throws:
RuntimeException
- if tree is empty.
-
findMin
Find the smallest item in the tree.- Returns:
- smallest item or null if empty.
-
findMax
Find the largest item in the tree.- Returns:
- the largest item or null if empty.
-
find
Find an item in the tree.- Parameters:
x
- the item to search for.- Returns:
- the matching item or null if not found.
-
findIntervalStart
Find the start of the interval where x is in.- Parameters:
x
- is the item to search the start for.- Returns:
- node containing the start of the interval where x is in, or null if x is not contained in any interval.
-
makeEmpty
public void makeEmpty()Make the tree logically empty. -
isEmpty
public boolean isEmpty()Test if the tree is logically empty.- Returns:
- true if empty, false otherwise.
-
insert
Internal method to insert into a subtree.- Parameters:
x
- the item to insert.t
- the node that roots the tree.- Returns:
- the new root.
- Throws:
RuntimeException
- if x is already present.
-
remove
Internal method to remove from a subtree.- Parameters:
x
- the item to remove.t
- the node that roots the tree.- Returns:
- the new root.
- Throws:
RuntimeException
- if x is not found.
-
removeMin
protected gaiasky.util.BinaryNode removeMin(gaiasky.util.BinaryNode t)Internal method to remove minimum item from a subtree.- Parameters:
t
- the node that roots the tree.- Returns:
- the new root.
- Throws:
RuntimeException
- if x is not found.
-
findMin
protected gaiasky.util.BinaryNode findMin(gaiasky.util.BinaryNode t)Internal method to find the smallest item in a subtree.- Parameters:
t
- the node that roots the tree.- Returns:
- node containing the smallest item.
-
main
-