2. General Trees
2.1. General Trees
2.2. General Tree ADT
// General tree node ADT
public interface GTNode {
public Object value();
public boolean isLeaf();
public GTNode parent();
public GTNode leftmostChild();
public GTNode rightSibling();
public void setValue(Object value);
public void setParent(GTNode par);
public void insertFirst(GTNode n);
public void insertNext(GTNode n);
public void removeFirst();
public void removeNext();
}
// General tree ADT
public interface GenTree {
public void clear(); // Clear the tree
public GTNode root(); // Return the root
// Make the tree have a new root, give first child and sib
public void newroot(Object value, GTNode first, GTNode sib);
public void newleftchild(E value); // Add left child
}
2.3. General Tree Traversal
2.4. Representation: Lists of Children
2.5. Representation: Dynamic Node (Array)
2.6. Representation: Dynamic Node (linked list)
2.7. Representation: Left-Child/Right-Sibling
2.8. Serialization
Serialization is the process of storing an object as a series of bytes.
A sequential tree serialization typically stores the node values as they would be enumerated by a preorder traversal, along with sufficient information to describe the tree’s shape.
