Package repast.simphony.util.collections
Interface Tree<T>
- All Known Implementing Classes:
NaryTree
public interface Tree<T>
Interface for class that want to implement Tree collection behavior.
- Version:
- $Revision$ $Date$
- Author:
- Nick Collier
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds the specified child to the tree as a child of the specified parent.boolean
Checks if the tree contains the specified node with the specified parent.getChildren
(T obj) Gets the direct children of the specified node.getRoot()
Gets the root of the tree.void
preOrderTraversal
(TreeVisitor<T> visitor) Traverse the tree in preOrder - depth first, processing parents before children - applying the visitor to the nodes.boolean
removeNode
(T obj) Removes the specified object from the tree.void
replaceNode
(T oldObj, T newObj) Replaces the old object in the tree with the new one.int
size()
Gets the number of nodes currently in the tree.void
sortChildren
(Comparator<T> comparator) Sorts the children of each node w/r to each other according the specified comparator
-
Method Details
-
getRoot
T getRoot()Gets the root of the tree.- Returns:
- the root of the tree.
-
getChildren
Gets the direct children of the specified node. This will not return grand children etc.- Returns:
- the direct children of the specified node.
- Throws:
IllegalArgumentException
- if the object is not currently in the tree.
-
addNode
Adds the specified child to the tree as a child of the specified parent.- Parameters:
parent
- the parent nodechild
- the child node- Throws:
IllegalArgumentException
- if the parent is not currently in the tree.
-
removeNode
Removes the specified object from the tree.- Parameters:
obj
- the object to remove- Returns:
- true if the object was successfully removed, otherwise false.
-
replaceNode
Replaces the old object in the tree with the new one.- Parameters:
oldObj
- the old object to replacenewObj
- the new object- Throws:
IllegalArgumentException
- if the old object is not currently in the tree.
-
contains
Checks if the tree contains the specified node with the specified parent. This will stop when it finds the first node corresponding to the parent, meaning, if multiple nodes correspond to the parent, only the first one will be checked.- Parameters:
parent
- the parent nodenode
- the child of the parent- Returns:
- true if the tree contains the specified child node pair
-
size
int size()Gets the number of nodes currently in the tree.- Returns:
- the number of nodes currently in the tree.
-
sortChildren
Sorts the children of each node w/r to each other according the specified comparator- Parameters:
comparator
- the comparator used to sort the children
-
preOrderTraversal
Traverse the tree in preOrder - depth first, processing parents before children - applying the visitor to the nodes.- Parameters:
visitor
- the visitor to apply to the nodes
-