Class TreeUtils


  • public class TreeUtils
    extends java.lang.Object
    Contains static methods for operating on instances of Tree.
    • Constructor Summary

      Constructors 
      Constructor Description
      TreeUtils()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      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>
      java.util.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> java.util.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 java.lang.InstantiationException,
                                                             java.lang.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:
        java.lang.InstantiationException - if a new tree of the same type cannot be created
        java.lang.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()