1package aud.example.expr;
11 ((String)
null,
"aud.example.expr.ExpressionTreeTraversal");
16 super(
"aud.example.expr.ExpressionTreeTraversal");
49 if (type.toLowerCase().startsWith(
"pre")) {
50 halt(
"START preorder traversal");
53 else if (type.toLowerCase().startsWith(
"in")) {
54 halt(
"START inorder traversal");
57 else if (type.toLowerCase().startsWith(
"post")) {
58 halt(
"START postorder traversal");
61 else if (type.toLowerCase().startsWith(
"level")) {
62 halt(
"START level-order traversal");
66 throw new RuntimeException(
"unknown traversal '"+type+
"'");
113 halt(
"enter next level "+(level++));
129 public static void main(String[] args) {
131 if (args.length<1 || args.length>2) {
133 (
"usage: java aud.example.expr.ExpressionTreeTraversal expr [mode]\n"+
134 "- expr: an expression, e.g., \"2*(3+4)\" "+
135 "(use quotes \"...\" on command line!)\n"+
136 "- mode: preorder | inorder | postorder | levelorder");
143 app.
traverse(args.length>1 ? args[1] :
"preorder");
BinaryTree< T > getLeft()
get left child or null
BinaryTree< T > getRight()
get right child or null)
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.
Simple expression parser.
ExpressionTree parse(String input)
parse input
example: visualize expression tree traversal
void inorder(ExpressionTree node)
recursive inorder traversal
void output(ExpressionTree node)
output node during traversal
SimpleDecorator decorator
void postorder(ExpressionTree node)
recursive postorder traversal
void traverse(String type)
start traversal
void levelorder(ExpressionTree root)
level order traversdal
void preorder(ExpressionTree node)
recursive preorder traversal
ExpressionTreeTraversal(ExpressionTree tree)
create traversal application for tree
static void main(String[] args)
void see(ExpressionTree node)
arrived node for first time (for visualization)
Tree representation of arithmetic expression.
GraphvizDecorator getDecorator()
get decoration or null
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
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.