|
net.datastructures - version 5.0 | |||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.datastructures.LinkedBinaryTree<Entry<K,V>>
net.datastructures.BinarySearchTreeMap<K,V>
public class BinarySearchTreeMap<K,V>
Realization of a map by means of a binary search tree.
Nested Class Summary | |
---|---|
protected static class |
BinarySearchTreeMap.BSTEntry<K,V>
Nested class for location-aware binary search tree entries |
Field Summary | |
---|---|
protected Position<Entry<K,V>> |
actionPos
|
protected Comparator<K> |
C
|
protected int |
numEntries
|
Fields inherited from class net.datastructures.LinkedBinaryTree |
---|
root, size |
Constructor Summary | |
---|---|
BinarySearchTreeMap()
Creates a BinarySearchTreeMap with a default comparator. |
|
BinarySearchTreeMap(Comparator<K> c)
Creates a BinarySearchTreeMap with the given comparator. |
Method Summary | |
---|---|
protected void |
checkEntry(Entry<K,V> ent)
Checks whether a given entry is valid. |
protected void |
checkKey(K key)
Checks whether a given key is valid. |
protected Entry<K,V> |
entry(Position<Entry<K,V>> position)
Extracts the entry at a given node of the tree. |
Iterable<Entry<K,V>> |
entrySet()
Returns an iterable object containing all entries in the tree. |
V |
get(K key)
Returns the value of the entry containing the given key. |
protected Entry<K,V> |
insertAtExternal(Position<Entry<K,V>> v,
Entry<K,V> e)
Auxiliary method for inserting an entry at an external node |
boolean |
isEmpty()
Returns whether the tree is empty. |
protected K |
key(Position<Entry<K,V>> position)
Extracts the key of the entry at a given node of the tree. |
Iterable<K> |
keySet()
Returns an iterable object containing all keys in the tree. |
V |
put(K k,
V x)
If there is an entry with the specified key, replaces the value of this entry with the specified value and returns the old value. |
V |
remove(K k)
If there is an entry with the specified key, removes this entry and returns its value. |
protected void |
removeExternal(Position<Entry<K,V>> v)
Auxiliary method for removing an external node and its parent |
protected V |
replaceEntry(Position<Entry<K,V>> pos,
Entry<K,V> ent)
Replaces an entry with a new entry (and reset the entry's location) |
protected Position<Entry<K,V>> |
restructure(Position<Entry<K,V>> x)
Performs a tri-node restructuring. |
int |
size()
Returns the number of entries in the tree. |
protected Position<Entry<K,V>> |
treeSearch(K key,
Position<Entry<K,V>> pos)
Auxiliary method used by get, put, and remove. |
protected V |
value(Position<Entry<K,V>> position)
Extracts the value of the entry at a given node of the tree. |
Iterable<V> |
values()
Returns an iterable object containing all values in the tree. |
Methods inherited from class net.datastructures.LinkedBinaryTree |
---|
addRoot, attach, checkPosition, children, createNode, expandExternal, hasLeft, hasRight, inorderPositions, insertLeft, insertRight, isExternal, isInternal, isRoot, iterator, left, parent, positions, preorderPositions, 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<K> C
protected Position<Entry<K,V>> actionPos
protected int numEntries
Constructor Detail |
---|
public BinarySearchTreeMap()
public BinarySearchTreeMap(Comparator<K> c)
Method Detail |
---|
protected K key(Position<Entry<K,V>> position)
protected V value(Position<Entry<K,V>> position)
protected Entry<K,V> entry(Position<Entry<K,V>> position)
protected V replaceEntry(Position<Entry<K,V>> pos, Entry<K,V> ent)
protected void checkKey(K key) throws InvalidKeyException
InvalidKeyException
protected void checkEntry(Entry<K,V> ent) throws InvalidEntryException
InvalidEntryException
protected Entry<K,V> insertAtExternal(Position<Entry<K,V>> v, Entry<K,V> e)
protected void removeExternal(Position<Entry<K,V>> v)
protected Position<Entry<K,V>> treeSearch(K key, Position<Entry<K,V>> pos)
public int size()
size
in interface Map<K,V>
size
in interface Tree<Entry<K,V>>
size
in class LinkedBinaryTree<Entry<K,V>>
public boolean isEmpty()
isEmpty
in interface Map<K,V>
isEmpty
in interface Tree<Entry<K,V>>
isEmpty
in class LinkedBinaryTree<Entry<K,V>>
public V get(K key) throws InvalidKeyException
get
in interface Map<K,V>
InvalidKeyException
public V put(K k, V x) throws InvalidKeyException
put
in interface Map<K,V>
InvalidKeyException
public V remove(K k) throws InvalidKeyException
remove
in interface Map<K,V>
InvalidKeyException
public Iterable<K> keySet()
keySet
in interface Map<K,V>
public Iterable<V> values()
values
in interface Map<K,V>
public Iterable<Entry<K,V>> entrySet()
entrySet
in interface Map<K,V>
protected Position<Entry<K,V>> restructure(Position<Entry<K,V>> 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
|
net.datastructures - version 5.0 | |||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |