Package org.arakhne.afc.math.tree
Class AbstractTree<D,N extends TreeNode<D,N>>
- java.lang.Object
-
- org.arakhne.afc.math.tree.AbstractTree<D,N>
-
- Type Parameters:
D- is the type of the data inside the treeN- is the type of the tree nodes.
- All Implemented Interfaces:
Serializable,Iterable<N>,BroadFirstIterableTree<D,N>,DepthFirstIterableTree<D,N>,Tree<D,N>
- Direct Known Subclasses:
LinkedTree
public abstract class AbstractTree<D,N extends TreeNode<D,N>> extends Object implements DepthFirstIterableTree<D,N>, BroadFirstIterableTree<D,N>, Serializable
This is the generic implementation of a tree based on linked lists.This tree assumes that the nodes are linked with there references.
- Since:
- 13.0
- Version:
- 17.0 2020-01-04 14:41:41
- Author:
- Stéphane GALLAND
- See Also:
- Serialized Form
- Maven Group Id:
- org.arakhne.afc.core
- Maven Artifact Id:
- mathtree
-
-
Constructor Summary
Constructors Constructor Description AbstractTree()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Iterator<N>broadFirstIterator()Replies a broad first iterator on nodes.Iterator<D>dataBroadFirstIterator()Replies the broad-first iterator on the tree.Iterator<D>dataDepthFirstIterator()Replies a prefixed depth first iterator on the tree.Iterator<D>dataDepthFirstIterator(int infixPosition)Replies the depth first iterator on the tree.Iterator<D>dataDepthFirstIterator(DepthFirstNodeOrder nodeOrder)Replies a depth first iterator on the tree.Iterator<N>depthFirstIterator()Replies a depth-first iterator on nodes.Iterator<N>depthFirstIterator(int infixPosition)Replies the infixes depth first iterator on the tree.Iterator<N>depthFirstIterator(DepthFirstNodeOrder nodeOrder)Replies a depth-first iterator on nodes.booleanisEmpty()Replies if this tree contains user data.Iterator<N>iterator()The default iterator is a depth first iterator.Iterable<N>toBroadFirstIterable()Replies the broad-first iterator on the tree.Iterable<D>toDataBroadFirstIterable()Replies the broad-first iterator on the tree.Iterable<D>toDataDepthFirstIterable()Replies the depth first iterator on the tree.Iterable<D>toDataDepthFirstIterable(int infixPosition)Replies the infixed depth first iterator on the tree.Iterable<D>toDataDepthFirstIterable(DepthFirstNodeOrder nodeOrder)Replies the depth first iterator on the tree.Iterable<N>toDepthFirstIterable()Replies the depth first iterator on the tree.Iterable<N>toDepthFirstIterable(int infixPosition)Replies the infixed depth first iterator on the tree.Iterable<N>toDepthFirstIterable(DepthFirstNodeOrder nodeOrder)Replies the depth first iterator on the tree.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Methods inherited from interface org.arakhne.afc.math.tree.Tree
clear, getHeights, getMaxHeight, getMinHeight, getNodeCount, getRoot, getUserDataCount, setRoot
-
-
-
-
Method Detail
-
isEmpty
@Pure public final boolean isEmpty()
Description copied from interface:TreeReplies if this tree contains user data.
-
depthFirstIterator
@Pure public final Iterator<N> depthFirstIterator(DepthFirstNodeOrder nodeOrder)
Description copied from interface:TreeReplies a depth-first iterator on nodes.- Specified by:
depthFirstIteratorin interfaceDepthFirstIterableTree<D,N extends TreeNode<D,N>>- Specified by:
depthFirstIteratorin interfaceTree<D,N extends TreeNode<D,N>>- Parameters:
nodeOrder- indicates how the data are treated by the iterator.- Returns:
- a depth first iterator on nodes
-
depthFirstIterator
@Pure public final Iterator<N> depthFirstIterator(int infixPosition)
Description copied from interface:DepthFirstIterableTreeReplies the infixes depth first iterator on the tree.- Specified by:
depthFirstIteratorin interfaceDepthFirstIterableTree<D,N extends TreeNode<D,N>>- Parameters:
infixPosition- is the index at which the parent will be treated according to its child set.- Returns:
- the iterator on nodes
- See Also:
InfixDepthFirstTreeIterator
-
depthFirstIterator
@Pure public final Iterator<N> depthFirstIterator()
Description copied from interface:TreeReplies a depth-first iterator on nodes.- Specified by:
depthFirstIteratorin interfaceDepthFirstIterableTree<D,N extends TreeNode<D,N>>- Specified by:
depthFirstIteratorin interfaceTree<D,N extends TreeNode<D,N>>- Returns:
- a depth-first iterator.
-
broadFirstIterator
@Pure public final Iterator<N> broadFirstIterator()
Description copied from interface:TreeReplies a broad first iterator on nodes.- Specified by:
broadFirstIteratorin interfaceBroadFirstIterableTree<D,N extends TreeNode<D,N>>- Specified by:
broadFirstIteratorin interfaceTree<D,N extends TreeNode<D,N>>- Returns:
- a broad first iterator.
-
dataDepthFirstIterator
@Pure public final Iterator<D> dataDepthFirstIterator()
Description copied from interface:TreeReplies a prefixed depth first iterator on the tree.- Specified by:
dataDepthFirstIteratorin interfaceDepthFirstIterableTree<D,N extends TreeNode<D,N>>- Specified by:
dataDepthFirstIteratorin interfaceTree<D,N extends TreeNode<D,N>>- Returns:
- a prefixed depth first iterator on data.
-
dataDepthFirstIterator
@Pure public final Iterator<D> dataDepthFirstIterator(DepthFirstNodeOrder nodeOrder)
Description copied from interface:TreeReplies a depth first iterator on the tree.
-
dataDepthFirstIterator
@Pure public final Iterator<D> dataDepthFirstIterator(int infixPosition)
Description copied from interface:TreeReplies the depth first iterator on the tree.- Specified by:
dataDepthFirstIteratorin interfaceTree<D,N extends TreeNode<D,N>>- Parameters:
infixPosition- is the index at which the parent will be treated according to its child set.- Returns:
- the iterator on user data
- See Also:
InfixDepthFirstTreeIterator
-
dataBroadFirstIterator
@Pure public final Iterator<D> dataBroadFirstIterator()
Description copied from interface:TreeReplies the broad-first iterator on the tree.- Specified by:
dataBroadFirstIteratorin interfaceBroadFirstIterableTree<D,N extends TreeNode<D,N>>- Specified by:
dataBroadFirstIteratorin interfaceTree<D,N extends TreeNode<D,N>>- Returns:
- the iterator on user data.
-
toDepthFirstIterable
@Pure public final Iterable<N> toDepthFirstIterable()
Description copied from interface:DepthFirstIterableTreeReplies the depth first iterator on the tree.- Specified by:
toDepthFirstIterablein interfaceDepthFirstIterableTree<D,N extends TreeNode<D,N>>- Returns:
- the iterator on nodes
-
toDepthFirstIterable
@Pure public final Iterable<N> toDepthFirstIterable(DepthFirstNodeOrder nodeOrder)
Description copied from interface:DepthFirstIterableTreeReplies the depth first iterator on the tree.- Specified by:
toDepthFirstIterablein interfaceDepthFirstIterableTree<D,N extends TreeNode<D,N>>- Parameters:
nodeOrder- is the order in which the parent node will be treated in comparison to its children.- Returns:
- the iterator on nodes
-
toDepthFirstIterable
@Pure public final Iterable<N> toDepthFirstIterable(int infixPosition)
Description copied from interface:DepthFirstIterableTreeReplies the infixed depth first iterator on the tree.- Specified by:
toDepthFirstIterablein interfaceDepthFirstIterableTree<D,N extends TreeNode<D,N>>- Parameters:
infixPosition- is the index at which the parent will be treated according to its child set.- Returns:
- the iterator on nodes
- See Also:
InfixDepthFirstTreeIterator
-
toBroadFirstIterable
@Pure public final Iterable<N> toBroadFirstIterable()
Description copied from interface:BroadFirstIterableTreeReplies the broad-first iterator on the tree.- Specified by:
toBroadFirstIterablein interfaceBroadFirstIterableTree<D,N extends TreeNode<D,N>>- Returns:
- the iterator on nodes.
-
toDataDepthFirstIterable
@Pure public final Iterable<D> toDataDepthFirstIterable()
Description copied from interface:DepthFirstIterableTreeReplies the depth first iterator on the tree.- Specified by:
toDataDepthFirstIterablein interfaceDepthFirstIterableTree<D,N extends TreeNode<D,N>>- Returns:
- the iterator on user data
-
toDataDepthFirstIterable
@Pure public final Iterable<D> toDataDepthFirstIterable(DepthFirstNodeOrder nodeOrder)
Description copied from interface:DepthFirstIterableTreeReplies the depth first iterator on the tree.- Specified by:
toDataDepthFirstIterablein interfaceDepthFirstIterableTree<D,N extends TreeNode<D,N>>- Parameters:
nodeOrder- is the order in which the parent node will be treated in comparison to its children.- Returns:
- the iterator on user data
-
toDataDepthFirstIterable
@Pure public final Iterable<D> toDataDepthFirstIterable(int infixPosition)
Description copied from interface:DepthFirstIterableTreeReplies the infixed depth first iterator on the tree.- Specified by:
toDataDepthFirstIterablein interfaceDepthFirstIterableTree<D,N extends TreeNode<D,N>>- Parameters:
infixPosition- is the index at which the parent will be treated according to its child set.- Returns:
- the iterator on user data
- See Also:
InfixDepthFirstTreeIterator
-
toDataBroadFirstIterable
@Pure public final Iterable<D> toDataBroadFirstIterable()
Description copied from interface:BroadFirstIterableTreeReplies the broad-first iterator on the tree.- Specified by:
toDataBroadFirstIterablein interfaceBroadFirstIterableTree<D,N extends TreeNode<D,N>>- Returns:
- the iterator on user data.
-
-