Package gaiasky.util
Class BinarySearchTree<T extends Comparable<T>>
java.lang.Object
gaiasky.util.BinarySearchTree<T>
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Basic node stored in unbalanced binary search trees Note that this class is not accessible outside of this package. -
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionfind
(Comparable<T> 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 BinarySearchTree.BinaryNode
<T> Internal method to find the smallest item in a subtree.void
Insert into the tree.protected BinarySearchTree.BinaryNode
<T> insert
(T x, BinarySearchTree.BinaryNode<T> t) Internal method to insert into a subtree.boolean
isEmpty()
Test if the tree is logically empty.static void
protected BinarySearchTree.BinaryNode
<T> remove
(Comparable<T> x, BinarySearchTree.BinaryNode<T> t) Internal method to remove from a subtree.void
Remove from the tree.protected BinarySearchTree.BinaryNode
<T> Internal method to remove minimum item from a subtree.
-
Field Details
-
root
The tree root.
-
-
Constructor Details
-
BinarySearchTree
public BinarySearchTree()Construct the tree.
-
-
Method Details
-
main
-
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.
-
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:
- object contained in the start of the interval where x is in, or null if x is not contained in any interval.
-
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
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
Internal method to find the smallest item in a subtree.- Parameters:
t
- the node that roots the tree.- Returns:
- node containing the smallest item.
-