Trees Make Money Fast! Bank Robbery Stock Fraud Ponzi Scheme Outline and Reading Tree ADT ( §2.3.1 ) Preorder and postorder traversals ( §2.3.2 ) BinaryTree ADT ( §2.3.3 ) Inorder traversal ( §2.3.3 ) Euler Tour traversal ( §2.3.3 ) Template method pattern
Related searches for Trees
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
Trees
Sales
Manufacturing
R&D
US
International
Laptops
Desktops
Europe
Asia
Canada
What is a TreeTrees
C
D
B
E
G
H
F
K
I
J
Tree Terminologysubtree
Trees
Trees
AlgorithmpreOrder(v)
visit(v)
foreachchild w of v
preorder (w)
1
Make Money Fast!
2
5
9
1. Motivations
2. Methods
References
6
7
8
3
4
2.3 BankRobbery
2.1 StockFraud
2.2 PonziScheme
1.1 Greed
1.2 Avidity
Trees
AlgorithmpostOrder(v)
foreachchild w of v
postOrder (w)
visit(v)
9
cs16/
8
3
7
todo.txt1K
homeworks/
programs/
4
5
6
1
2
Robot.java20K
h1c.doc3K
h1nc.doc2K
DDR.java10K
Stocks.java25K
Trees
A
C
B
D
E
F
G
I
H
Trees
2

3
b
a
1
Arithmetic Expression TreeTrees
Want a fast meal?
No
Yes
How about coffee?
On expense account?
Yes
No
Yes
No
Starbucks
Spike’s
Al Forno
Café Paragon
Trees
n number of nodes
e number of external nodes
i number of internal nodes
h height
Trees
The BinaryTree ADT extends the Tree ADT, i.e., it inherits all the methods of the Tree ADT
Additional methods:
position leftChild(p)
position rightChild(p)
position sibling(p)
Update methods may be defined by data structures implementing the BinaryTree ADT
BinaryTree ADTTrees
AlgorithminOrder(v)
ifisInternal (v)
inOrder (leftChild (v))
visit(v)
ifisInternal (v)
inOrder (rightChild (v))
6
2
8
1
4
7
9
3
5
Trees
+ all the methods of the Tree ADT
2

3
b
a
1
Print Arithmetic ExpressionsAlgorithmprintExpression(v)
ifisInternal (v)print(“(’’)
inOrder (leftChild (v))
print(v.element ())
ifisInternal (v)
inOrder (rightChild (v))
print (“)’’)
((2 (a  1)) + (3 b))
Trees
+ all the methods of the Tree ADT
2

3
2
5
1
Evaluate Arithmetic ExpressionsAlgorithmevalExpr(v)
ifisExternal (v)
returnv.element ()
else
x evalExpr(leftChild (v))
y evalExpr(rightChild (v))
operator stored at v
returnx y
Trees
+
L
R
B
2

3
2
5
1
Trees
public abstract class EulerTour{ protected BinaryTree tree;protected voidvisitExternal(Position p, Result r) { }protected voidvisitLeft(Position p, Result r) { }protected voidvisitBelow(Position p, Result r) { }protected voidvisitRight(Position p, Result r) { }protected Object eulerTour(Position p) { Result r = new Result();if tree.isExternal(p) { visitExternal(p, r); }else {visitLeft(p, r); r.leftResult = eulerTour(tree.leftChild(p));visitBelow(p, r); r.rightResult = eulerTour(tree.rightChild(p)); visitRight(p, r);return r.finalResult; } …
Trees
public class EvaluateExpressionextends EulerTour{
protected voidvisitExternal(Position p, Result r) {r.finalResult = (Integer) p.element(); }
protected voidvisitRight(Position p, Result r) {Operator op = (Operator) p.element();r.finalResult = op.operation( (Integer) r.leftResult, (Integer) r.rightResult ); }
…
}
operation (Integer, Integer)
Trees
all the methods of the Tree ADT
Data Structure for TreesB
A
D
F
B
A
D
F
C
E
C
E
Trees
D all the methods of the Tree ADT
C
A
B
E
Data Structure for Binary Trees
B
A
D
C
E
Trees
Tree interface all the methods of the Tree ADT
BinaryTree interface extending Tree
Classes implementing Tree and BinaryTree and providing
Constructors
Update methods
Print methods
Examples of updates for binary trees
expandExternal(v)
removeAboveExternal(w)
v
expandExternal(v)
A
A
removeAboveExternal(w)
A
B
B
C
Java Implementationv
w
Trees
JDSL is the Library of Data Structures in Java all the methods of the Tree ADT
Tree interfaces in JDSL
InspectableBinaryTree
InspectableTree
BinaryTree
Tree
Inspectable versions of the interfaces do not have update methods
Tree classes in JDSL
NodeBinaryTree
NodeTree
JDSL was developed at Brown’s Center for Geometric Computing
See the JDSL documentation and tutorials at http://jdsl.org
Trees in JDSLInspectableTree
Tree
InspectableBinaryTree
BinaryTree
Trees