Class GeneralTree<T>

  • Type Parameters:
    T - The type of data stored in the tree
    All Implemented Interfaces:
    Tree<T>

    public final class GeneralTree<T>
    extends Object
    implements Tree<T>
    A simple tree class that hides the tree implementation. The user works only with the Tree object and with their data. Since the tree relies on hashCode() and equals() internally, for best results it should be used by objects that implement those properly.
    • Constructor Detail

      • GeneralTree

        public GeneralTree​(T rootData)
        Create a new tree with the given data at the root.
        Parameters:
        rootData - The data for the root
    • Method Detail

      • contains

        public boolean contains​(T object)
        Description copied from interface: Tree
        Check if the tree contains the given data somewhere.
        Specified by:
        contains in interface Tree<T>
        Parameters:
        object - The object
        Returns:
        Is it in the tree?
      • depthStream

        public Stream<T> depthStream()
        Description copied from interface: Tree
        Return a stream that does depth-first traversal of the tree.
        Specified by:
        depthStream in interface Tree<T>
        Returns:
        The stream
      • breadthStream

        public Stream<T> breadthStream()
        Description copied from interface: Tree
        Return a stream that does breadth-first traversal of the tree.
        Specified by:
        breadthStream in interface Tree<T>
        Returns:
        The stream
      • getRoot

        public T getRoot()
        Description copied from interface: Tree
        Return the data at the root of the tree
        Specified by:
        getRoot in interface Tree<T>
        Returns:
        The data
      • getParent

        public Optional<T> getParent​(T child)
        Description copied from interface: Tree
        Get the parent data for child data
        Specified by:
        getParent in interface Tree<T>
        Parameters:
        child - The child data
        Returns:
        The parent data
      • getDepth

        public int getDepth()
        Description copied from interface: Tree
        Return the depth of the tree.
        Specified by:
        getDepth in interface Tree<T>
        Returns:
        The depth
      • getWidth

        public int getWidth()
        Description copied from interface: Tree
        Return the width of the tree
        Specified by:
        getWidth in interface Tree<T>
        Returns:
      • add

        public void add​(T child)
        Add a child to the root of the tree
        Parameters:
        child - The child data
      • add

        public void add​(T parent,
                        T child)
        Add a child to a specific parent.
        Parameters:
        parent - The parent data
        child - The child data
      • getChildren

        public List<T> getChildren​(T parent)
        Get the child data for specific parent data.
        Parameters:
        parent - The parent data
        Returns:
        The child data