Package gaiasky.util
Class BinarySearchTree
java.lang.Object
gaiasky.util.BinarySearchTree
public class BinarySearchTree
extends java.lang.Object
Implements an unbalanced binary search tree.
Note that all "matching" is based on the compareTo method.
-
Field Summary
Fields Modifier and Type Field Description protected gaiasky.util.BinaryNode
root
The tree root. -
Constructor Summary
Constructors Constructor Description BinarySearchTree()
Construct the tree. -
Method Summary
Modifier and Type Method Description java.lang.Comparable
find(java.lang.Comparable x)
Find an item in the tree.java.lang.Comparable
findIntervalStart(java.lang.Comparable x)
Find the start of the interval where x is in.java.lang.Comparable
findMax()
Find the largest item in the tree.java.lang.Comparable
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(java.lang.Comparable x)
Insert into the tree.protected gaiasky.util.BinaryNode
insert(java.lang.Comparable x, gaiasky.util.BinaryNode t)
Internal method to insert into a subtree.boolean
isEmpty()
Test if the tree is logically empty.static void
main(java.lang.String[] args)
void
makeEmpty()
Make the tree logically empty.void
remove(java.lang.Comparable x)
Remove from the tree..protected gaiasky.util.BinaryNode
remove(java.lang.Comparable x, gaiasky.util.BinaryNode t)
Internal method to remove from a subtree.void
removeMin()
Remove minimum item from the tree.protected gaiasky.util.BinaryNode
removeMin(gaiasky.util.BinaryNode t)
Internal method to remove minimum item from a subtree.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
root
protected gaiasky.util.BinaryNode rootThe tree root.
-
-
Constructor Details
-
BinarySearchTree
public BinarySearchTree()Construct the tree.
-
-
Method Details
-
insert
public void insert(java.lang.Comparable x)Insert into the tree.- Parameters:
x
- the item to insert.- Throws:
java.lang.RuntimeException
- if x is already present.
-
remove
public void remove(java.lang.Comparable x)Remove from the tree..- Parameters:
x
- the item to remove.- Throws:
java.lang.RuntimeException
- if x is not found.
-
removeMin
public void removeMin()Remove minimum item from the tree.- Throws:
java.lang.RuntimeException
- if tree is empty.
-
findMin
public java.lang.Comparable findMin()Find the smallest item in the tree.- Returns:
- smallest item or null if empty.
-
findMax
public java.lang.Comparable findMax()Find the largest item in the tree.- Returns:
- the largest item or null if empty.
-
find
public java.lang.Comparable find(java.lang.Comparable x)Find an item in the tree.- Parameters:
x
- the item to search for.- Returns:
- the matching item or null if not found.
-
findIntervalStart
public java.lang.Comparable findIntervalStart(java.lang.Comparable x)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
protected gaiasky.util.BinaryNode insert(java.lang.Comparable x, gaiasky.util.BinaryNode t)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:
java.lang.RuntimeException
- if x is already present.
-
remove
protected gaiasky.util.BinaryNode remove(java.lang.Comparable x, gaiasky.util.BinaryNode t)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:
java.lang.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:
java.lang.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
public static void main(java.lang.String[] args)
-