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.boolean
isEmpty()
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:Tree
Replies if this tree contains user data.
-
depthFirstIterator
@Pure public final Iterator<N> depthFirstIterator(DepthFirstNodeOrder nodeOrder)
Description copied from interface:Tree
Replies a depth-first iterator on nodes.- Specified by:
depthFirstIterator
in interfaceDepthFirstIterableTree<D,N extends TreeNode<D,N>>
- Specified by:
depthFirstIterator
in 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:DepthFirstIterableTree
Replies the infixes depth first iterator on the tree.- Specified by:
depthFirstIterator
in 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:Tree
Replies a depth-first iterator on nodes.- Specified by:
depthFirstIterator
in interfaceDepthFirstIterableTree<D,N extends TreeNode<D,N>>
- Specified by:
depthFirstIterator
in interfaceTree<D,N extends TreeNode<D,N>>
- Returns:
- a depth-first iterator.
-
broadFirstIterator
@Pure public final Iterator<N> broadFirstIterator()
Description copied from interface:Tree
Replies a broad first iterator on nodes.- Specified by:
broadFirstIterator
in interfaceBroadFirstIterableTree<D,N extends TreeNode<D,N>>
- Specified by:
broadFirstIterator
in interfaceTree<D,N extends TreeNode<D,N>>
- Returns:
- a broad first iterator.
-
dataDepthFirstIterator
@Pure public final Iterator<D> dataDepthFirstIterator()
Description copied from interface:Tree
Replies a prefixed depth first iterator on the tree.- Specified by:
dataDepthFirstIterator
in interfaceDepthFirstIterableTree<D,N extends TreeNode<D,N>>
- Specified by:
dataDepthFirstIterator
in 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:Tree
Replies a depth first iterator on the tree.
-
dataDepthFirstIterator
@Pure public final Iterator<D> dataDepthFirstIterator(int infixPosition)
Description copied from interface:Tree
Replies the depth first iterator on the tree.- Specified by:
dataDepthFirstIterator
in 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:Tree
Replies the broad-first iterator on the tree.- Specified by:
dataBroadFirstIterator
in interfaceBroadFirstIterableTree<D,N extends TreeNode<D,N>>
- Specified by:
dataBroadFirstIterator
in interfaceTree<D,N extends TreeNode<D,N>>
- Returns:
- the iterator on user data.
-
toDepthFirstIterable
@Pure public final Iterable<N> toDepthFirstIterable()
Description copied from interface:DepthFirstIterableTree
Replies the depth first iterator on the tree.- Specified by:
toDepthFirstIterable
in 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:DepthFirstIterableTree
Replies the depth first iterator on the tree.- Specified by:
toDepthFirstIterable
in 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:DepthFirstIterableTree
Replies the infixed depth first iterator on the tree.- Specified by:
toDepthFirstIterable
in 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:BroadFirstIterableTree
Replies the broad-first iterator on the tree.- Specified by:
toBroadFirstIterable
in interfaceBroadFirstIterableTree<D,N extends TreeNode<D,N>>
- Returns:
- the iterator on nodes.
-
toDataDepthFirstIterable
@Pure public final Iterable<D> toDataDepthFirstIterable()
Description copied from interface:DepthFirstIterableTree
Replies the depth first iterator on the tree.- Specified by:
toDataDepthFirstIterable
in 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:DepthFirstIterableTree
Replies the depth first iterator on the tree.- Specified by:
toDataDepthFirstIterable
in 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:DepthFirstIterableTree
Replies the infixed depth first iterator on the tree.- Specified by:
toDataDepthFirstIterable
in 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:BroadFirstIterableTree
Replies the broad-first iterator on the tree.- Specified by:
toDataBroadFirstIterable
in interfaceBroadFirstIterableTree<D,N extends TreeNode<D,N>>
- Returns:
- the iterator on user data.
-
-