13.2. General Trees¶
13.2.1. General Trees¶
13.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
}
13.2.3. General Tree Traversal¶
13.2.4. Representation: Lists of Children¶
13.2.5. Representation: Dynamic Node (Array)¶
13.2.6. Representation: Dynamic Node (linked list)¶
13.2.7. Representation: Left-Child/Right-Sibling¶
13.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.

