16 ((String)
null,
"aud.example.BinaryTreeTraversal");
21 super(
"aud.example.BinaryTreeTraversal");
32 static class MyTree
extends BinaryTree<String> {
33 public MyTree(String data) { super(data); }
34 public MyTree(String data,MyTree left,MyTree right) {
35 super(data,left,right);
46 MyTree root=
new MyTree
55 new MyTree(
"I",
new MyTree(
"J"),
null),
76 protected void see(MyTree node) {
89 if (type.toLowerCase().startsWith(
"pre")) {
90 halt(
"START preorder traversal");
93 else if (type.toLowerCase().startsWith(
"in")) {
94 halt(
"START inorder traversal");
97 else if (type.toLowerCase().startsWith(
"post")) {
98 halt(
"START postorder traversal");
101 else if (type.toLowerCase().startsWith(
"level")) {
102 halt(
"START level-order traversal");
106 throw new RuntimeException(
"unknown traversal '"+type+
"'");
127 inorder((MyTree) node.getLeft());
129 inorder((MyTree) node.getRight());
152 halt(
"enter next level "+(level++));
159 if (node.getLeft()!=
null)
160 queue.
enqueue((MyTree) node.getLeft());
161 if (node.getRight()!=
null)
162 queue.
enqueue((MyTree) node.getRight());
168 public static void main(String[] args) {
175 for (String type : args)
Implementation of AbstractQueue as a (dynamically resized) circular buffer based on array.
void enqueue(T x)
Enqueue element at end of queue.
boolean is_empty()
Is queue empty?
T dequeue()
Remove front element from queue.
example: visualize binary tree traversal
BinaryTreeTraversal(MyTree tree)
create traversal application for tree
void traverse(String type)
start traversal
void preorder(MyTree node)
recursive preorder traversal
static void main(String[] args)
SimpleDecorator decorator
void output(MyTree node)
output node during traversal
static MyTree exampleTree()
generate some tree
void postorder(MyTree node)
recursive postorder traversal
void see(MyTree node)
arrived node for first time (for visualization)
void inorder(MyTree node)
recursive inorder traversal
void levelorder(MyTree root)
level order traversdal
void setGraphLabel(String text)
set label
String getGraphLabel()
get label
void clear()
Clear all decorations.
Simple viewer for Graphvizable.
void display(String code)
display dot code
Decorator for items of Graphvizable objects.
Example for a simple decorator.
void markEdge(GraphvizDecorable object)
void markNode(GraphvizDecorable object)
void highlightNode(GraphvizDecorable object)
Set highlighted node.
Simple framework for single stepping code.
void halt(String text, int timeout)
display text and wait for user or timeout
utilities (not related to AuD lecture)
AuD lecture: Data structures, algorithms, examples.