|
© 1998-2002 McGraw-Hill | |||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--structure.AbstractStructure | +--structure.RedBlackSearchTree
Red black trees, are binary trees that guarantee the following three properties.
1. Every child of every leaf is considered black
2. Every red node has two black children
3. Every path from a node to a descendant leaf contains the same
number of black nodes.
These properties ensure that elements can be inserted, deleted, and located in logorithmic time.
Example usage:
To create a red-black tree containing the months of the year and to print out this tree as it grows we could use the following
public static void main(String[] argv){ RedBlackSearchTree test = newRedBlackSearchTree()
; //declare an array of months String[] months = new String[]{"March", "May", "November", "August", "April", "January", "December", "July", "February", "June", "October", "September"}; //add the months to the tree and print out the tree as it grows for(int i=0; i < months.length; i++){ test.add(months[i])
; System.out.println("Adding: " + months[i] + "\n" +test.treeString()
); } }
AVLTree
,
SplayTree
,
BinaryTree
Field Summary | |
protected int |
count
The number of nodes in the tree |
protected RedBlackTree |
root
A reference to the root of the tree |
Constructor Summary | |
RedBlackSearchTree()
Constructs a red-black search tree with no data |
Method Summary | |
void |
add(Object value)
Add a (possibly duplicate) value to the red-black tree, and ensure that the resulting tree is a red-black tree. |
void |
clear()
Removes all data from the binary search tree |
boolean |
contains(Object value)
Determines if the red-black search tree contains a value |
int |
hashCode()
Returns the hashCode of the value stored by this object. |
boolean |
isEmpty()
Checks for an empty binary search tree |
boolean |
isRedBlack()
Returns true iff this tree is a red-black tree. |
Iterator |
iterator()
Returns an iterator over the red-black search tree. |
Object |
remove(Object value)
Remove an value "equals to" the indicated value. |
int |
size()
Determines the number of data values within the tree |
String |
toString()
Returns a string representing tree |
String |
treeString()
Returns a (possibly long) string representing tree. |
Methods inherited from class structure.AbstractStructure |
elements, values |
Methods inherited from class java.lang.Object |
|
Methods inherited from interface structure.Structure |
elements, values |
Field Detail |
protected RedBlackTree root
protected int count
Constructor Detail |
public RedBlackSearchTree()
Method Detail |
public boolean isEmpty()
isEmpty
in interface Structure
isEmpty
in class AbstractStructure
public void clear()
clear
in interface Structure
public int size()
size
in interface Structure
public void add(Object value)
add
in interface Structure
val
- A reference to non-null objectpublic Object remove(Object value)
remove
in interface Structure
val
- Value sought to be removed from treepublic boolean contains(Object value)
contains
in interface Structure
contains
in class AbstractStructure
val
- The value sought. Should be non-nullpublic boolean isRedBlack()
public Iterator iterator()
iterator
in interface Structure
public String treeString()
toString()
in that toString()
outputs
a single line representation of the contents of the tree.
treeString
, however, prints out a graphical
representations of the tree's structure.public String toString()
toString
in class Object
public int hashCode()
hashCode
in class AbstractStructure
|
© 1998-2002 McGraw-Hill | |||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |