edu.uci.ics.jung.graph.util
Class TreeUtils

java.lang.Object
  extended by edu.uci.ics.jung.graph.util.TreeUtils

public class TreeUtils
extends Object

Contains static methods for operating on instances of Tree.


Constructor Summary
TreeUtils()
           
 
Method Summary
static
<V,E> void
addFromSubTree(Forest<V,E> tree, Forest<V,E> subTree, E edge, V parent, V root)
          Adds the trees in source to destination.
static
<V,E> void
addSubTree(Forest<V,E> tree, Forest<V,E> subTree, V node, E connectingEdge)
          Connects subTree to tree by attaching it as a child of node with edge connectingEdge.
static
<V,E> List<V>
getRoots(Forest<V,E> forest)
          Returns the roots of this forest.
static
<V,E> Tree<V,E>
getSubTree(Forest<V,E> forest, V root)
          Returns the subtree of tree which is rooted at root as a Forest.
static
<V,E> void
growSubTree(Forest<V,E> tree, Forest<V,E> subTree, V root)
          Populates subtree with the subtree of tree which is rooted at root.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TreeUtils

public TreeUtils()
Method Detail

getRoots

public static <V,E> List<V> getRoots(Forest<V,E> forest)
Returns the roots of this forest.

Type Parameters:
V - the vertex type
E - the edge type

getSubTree

public static <V,E> Tree<V,E> getSubTree(Forest<V,E> forest,
                                         V root)
                            throws InstantiationException,
                                   IllegalAccessException
Returns the subtree of tree which is rooted at root as a Forest. The tree returned is an independent entity, although it uses the same vertex and edge objects.

Type Parameters:
V - the vertex type
E - the edge type
Parameters:
forest - the tree whose subtree is to be extracted
root - the root of the subtree to be extracted
Returns:
the subtree of tree which is rooted at root
Throws:
InstantiationException - if a new tree of the same type cannot be created
IllegalAccessException

growSubTree

public static <V,E> void growSubTree(Forest<V,E> tree,
                                     Forest<V,E> subTree,
                                     V root)
Populates subtree with the subtree of tree which is rooted at root.

Type Parameters:
V - the vertex type
E - the edge type
Parameters:
tree - the tree whose subtree is to be extracted
subTree - the tree instance which is to be populated with the subtree of tree
root - the root of the subtree to be extracted

addSubTree

public static <V,E> void addSubTree(Forest<V,E> tree,
                                    Forest<V,E> subTree,
                                    V node,
                                    E connectingEdge)
Connects subTree to tree by attaching it as a child of node with edge connectingEdge.

Type Parameters:
V - the vertex type
E - the edge type
Parameters:
tree - the tree to which subTree is to be added
subTree - the tree which is to be grafted on to tree
node - the parent of subTree in its new position in tree
connectingEdge - the edge used to connect subtree's root as a child of node

addFromSubTree

public static <V,E> void addFromSubTree(Forest<V,E> tree,
                                        Forest<V,E> subTree,
                                        E edge,
                                        V parent,
                                        V root)
Adds the trees in source to destination. source is left unchanged. The vertex and edge objects in source will also be used in destination, in the same (structural) roles.

Type Parameters:
V - the vertex type
E - the edge type
Parameters:
destination - the forest to which the trees in source will be added
source - the forest whose trees will be added to destination FIXME also note that this is redundant with DelegateForest.addTree()


Copyright © 2009. All Rights Reserved.