-
Book Overview & Buying
-
Table Of Contents
Java 9 Data Structures and Algorithms
By :
Now that we have some idea of the tree, we can define the tree ADT. A tree ADT can be defined in multiple ways. We will check out two. In an imperative setting, that is, when trees are mutable, we can define a tree ADT as having the following operations:
Get the root node
Given a node, get its children
This is all that is required to have a model for a tree. We may also include some appropriate mutation methods.
The recursive definition for the tree ADT can be as follows:
A tree is an ordered pair containing the following:
a value
a list of other trees, which are meant to be it's subtrees
We can develop a tree implementation in exactly the same way as it is defined in the functional tree ADT:
public class FunctionalTree<E> {
private E value;
private LinkedList<FunctionalTree<E>> children;As defined in the ADT, the tree is an ordered pair of a value and a list of other trees, as follows:
public FunctionalTree(E value, LinkedList<FunctionalTree...