|
datastructures | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.datastructures.LinkedBinaryTree
net.datastructures.BinarySearchTree
Realization of a dictionary by means of a binary search tree.
Nested Class Summary | |
protected static class |
BinarySearchTree.BSTEntry
Nested class for location-aware binary search tree entries |
Field Summary | |
protected Position |
actionPos
|
protected Comparator |
C
|
protected int |
numEntries
|
Fields inherited from class net.datastructures.LinkedBinaryTree |
root, size |
Constructor Summary | |
BinarySearchTree()
Creates a BinarySearchTree with a default comparator. |
|
BinarySearchTree(Comparator c)
Creates a BinarySearchTree with the given comparator. |
Method Summary | |
protected void |
addAll(List L,
Position v,
Object k)
Adds to L all entries in the subtree rooted at v having keys equal to k. |
protected void |
checkEntry(Entry ent)
Check whether a given entry is valid. |
protected void |
checkKey(Object key)
Check whether a given key is valid. |
Iterator |
entries()
Returns an iterator containing all entries in the tree. |
protected Entry |
entry(Position position)
Extract the entry at a given node of the tree. |
Entry |
find(Object key)
Returns an entry containing the given key. |
Iterator |
findAll(Object key)
Returns an iterator containing all entries containing the given key. |
Entry |
insert(Object k,
Object x)
Inserts an entry into the tree and returns the newly created entry. |
protected Entry |
insertAtExternal(Position v,
Entry e)
Auxiliary method for inserting an entry at an external node |
boolean |
isEmpty()
Returns whether the tree is empty. |
protected Object |
key(Position position)
Extract the key of the entry at a given node of the tree. |
Entry |
remove(Entry ent)
Removes and returns a given entry. |
protected void |
removeExternal(Position v)
Auxiliary method for removing an external node and its parent |
protected void |
replaceEntry(Position pos,
Entry ent)
Replace an entry with a new entry (and reset the entry's location) |
protected Position |
restructure(Position x)
Performs a tri-node restructuring. |
int |
size()
Returns the number of entries in the tree. |
protected Position |
treeSearch(Object key,
Position pos)
Auxiliary method used by find, insert, and remove. |
protected Object |
value(Position position)
Extract the value of the entry at a given node of the tree. |
Methods inherited from class net.datastructures.LinkedBinaryTree |
addRoot, attach, checkPosition, children, createNode, elements, expandExternal, hasLeft, hasRight, inorderPositions, insertLeft, insertRight, isExternal, isInternal, isRoot, left, parent, positions, remove, removeAboveExternal, replace, right, root, sibling, swapElements |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected Comparator C
protected Position actionPos
protected int numEntries
Constructor Detail |
public BinarySearchTree()
public BinarySearchTree(Comparator c)
Method Detail |
protected Object key(Position position)
protected Object value(Position position)
protected Entry entry(Position position)
protected void replaceEntry(Position pos, Entry ent)
protected void checkKey(Object key) throws InvalidKeyException
InvalidKeyException
protected void checkEntry(Entry ent) throws InvalidEntryException
InvalidEntryException
protected Entry insertAtExternal(Position v, Entry e)
protected void removeExternal(Position v)
protected Position treeSearch(Object key, Position pos)
protected void addAll(List L, Position v, Object k)
public int size()
size
in interface Dictionary
size
in class LinkedBinaryTree
public boolean isEmpty()
isEmpty
in interface Dictionary
isEmpty
in class LinkedBinaryTree
public Entry find(Object key) throws InvalidKeyException
find
in interface Dictionary
InvalidKeyException
public Iterator findAll(Object key) throws InvalidKeyException
findAll
in interface Dictionary
InvalidKeyException
public Entry insert(Object k, Object x) throws InvalidKeyException
insert
in interface Dictionary
InvalidKeyException
public Entry remove(Entry ent) throws InvalidEntryException
remove
in interface Dictionary
InvalidEntryException
public Iterator entries()
entries
in interface Dictionary
protected Position restructure(Position x)
z=c z=c z=a z=a / \ / \ / \ / \ y=b t4 y=a t4 t1 y=c t1 y=b / \ / \ / \ / \ x=a t3 t1 x=b x=b t4 t2 x=c / \ / \ / \ / \ t1 t2 t2 t3 t2 t3 t3 t4
|
datastructures | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |