
com.thesett.common.util.Tree Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of common Show documentation
Show all versions of common Show documentation
My common library, a mixed bag of re-usable utility code.
The newest version!
/*
* Copyright The Sett Ltd, 2005 to 2014.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.thesett.common.util;
import java.util.Collection;
import java.util.Iterator;
/**
* Tree defines the interface for an abstract tree data type. The trees it describes are capable of storing data
* elements in their nodes and in their leaves. The type of data element held in the nodes is constrained to be the same
* as the element type in the leaves.
*
* Trees are defined as recursive data types. There are two types of tree: those that are nodes and have child trees,
* those that are leaves and have no children. The leaves and nodes themselves are also trees and extend the tree
* interface.
*
*
The branching factor is arbitrary. A node may have any number of children.
*
*
There is a method to generate an iterator over a tree. The iterator may choose one of several different orderings
* to traverse the tree; pre-order, in-order and post-order:
*
*
* - The preorder listing of tree T is the root of T, followed by the nodes of children T1 to Tk in preorder.
* - The inorder listing of tree T is the nodes of child T1 in inorder, followed by the root r, followed by the nodes
* of T2 to Tk in inorder.
* - The postorder listing of T is the nodes of T1 to Tk in postorder, all followed by the root r.
*
*
*
CRC Card
* Responsibilities
*
* Provide access to a tree as a node or a leaf.
* Iterate over all data elements in a tree.
* Provide access to the elements of a tree.
*
*
* @author Rupert Smith
*/
public interface Tree© 2015 - 2025 Weber Informatics LLC | Privacy Policy