tree 황승원 fall 2010 cse, postech. 2 2 nature lover ’ s view of a tree root branches leaves
TRANSCRIPT
![Page 1: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/1.jpg)
Tree
황승원Fall 2010
CSE, POSTECH
![Page 2: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/2.jpg)
22
Nature Lover’s View Of A Tree
root
branches
leaves
![Page 3: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/3.jpg)
33
Computer Scientist’s View
branches
leavesroot
nodes
![Page 4: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/4.jpg)
44
Linear Lists And Trees
Linear lists are useful for serially ordered data.– (e0, e1, e2, …, en-1)– Days of week.– Months in a year.– Students in this class.
Trees are useful for hierarchically ordered data.– Employees of a corporation.
President, vice presidents, managers, and so on.
– Java’s classes. Object is at the top of the hierarchy. Subclasses of Object are next, and so on.
![Page 5: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/5.jpg)
55
Hierarchical Data And Trees
The element at the top of the hierarchy is the root. Elements next in the hierarchy are the children of
the root. Elements next in the hierarchy are the
grandchildren of the root, and so on. Elements that have no children are leaves.
![Page 6: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/6.jpg)
66great grand child of root
grand children of root
children of root
Java’s Classes (Part Of Figure 1.1)
Object
Number Throwable OutputStream
Integer Double Exception FileOutputStream
RuntimeException
root
![Page 7: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/7.jpg)
77
Definition
A tree t is a finite nonempty set of elements. One of these elements is called the root. The remaining elements, if any, are partitioned int
o trees, which are called the subtrees of t.
![Page 8: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/8.jpg)
88
Subtrees
Object
Number Throwable OutputStream
Integer Double Exception FileOutputStream
RuntimeException
root
![Page 9: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/9.jpg)
99
Leaves
Object
Number Throwable OutputStream
Integer Double Exception FileOutputStream
RuntimeException
![Page 10: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/10.jpg)
1010
Parent, Grandparent, Siblings, Ancestors, Descendants
Object
Number Throwable OutputStream
Integer Double Exception FileOutputStream
RuntimeException
![Page 11: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/11.jpg)
1111Level 4
Level 3
Level 2
Levels
Object
Number Throwable OutputStream
Integer Double Exception FileOutputStream
RuntimeException
Level 1
![Page 12: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/12.jpg)
1212
Caution
Some texts start level numbers at 0 rather than at 1.
Root is at level 0. Its children are at level 1. The grand children of the root are at level 2. And so on. We shall number levels with the root at level 1.
![Page 13: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/13.jpg)
1313
height = depth = number of levels
Level 3
Object
Number Throwable OutputStream
Integer Double Exception FileOutputStream
RuntimeException
Level 4
Level 2
Level 1
![Page 14: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/14.jpg)
1414
Node Degree = Number Of Children
Object
Number Throwable OutputStream
Integer Double Exception FileOutputStream
RuntimeException
3
2 1 1
0 0 1 0
0
![Page 15: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/15.jpg)
1515
Tree Degree = Max Node Degree
Degree of tree = 3.
Object
Number Throwable OutputStream
Integer Double Exception FileOutputStream
RuntimeException
3
2 1 1
0 0 1 0
0
![Page 16: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/16.jpg)
1616
Binary Tree
Finite (possibly empty) collection of elements. A nonempty binary tree has a root element. The remaining elements (if any) are partitioned int
o two binary trees. These are called the left and right subtrees of the
binary tree.
![Page 17: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/17.jpg)
1717
Differences Between A Tree & A Binary Tree
No node in a binary tree may have a degree more than 2, whereas there is no limit on the degree of a node in a tree.
A binary tree may be empty; a tree cannot be empty.
![Page 18: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/18.jpg)
1818
Differences Between A Tree & A Binary Tree
The subtrees of a binary tree are ordered; those of a tree are not ordered.
a
b
a
b
• Are different when viewed as binary trees.
• Are the same when viewed as trees.
![Page 19: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/19.jpg)
1919
Application: Arithmetic Expressions
(a + b) * (c + d) + e – f/g*h + 3.25 Expressions comprise three kinds of entities.
– Operators (+, -, /, *).– Operands (a, b, c, d, e, f, g, h, 3.25, (a + b), (c + d), etc.).– Delimiters ((, )).
![Page 20: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/20.jpg)
2020
Operator Degree
Number of operands that the operator requires. Binary operator requires two operands.
– a + b– c / d– e - f
Unary operator requires one operand.– + g– - h
![Page 21: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/21.jpg)
2121
Infix Form
Normal way to write an expression. Binary operators come in between their left and
right operands.– a * b– a + b * c– a * b / c– (a + b) * (c + d) + e – f/g*h + 3.25
![Page 22: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/22.jpg)
2222
Operator Priorities
How do you figure out the operands of an operator?– a + b * c– a * b + c / d
This is done by assigning operator priorities.– priority(*) = priority(/) > priority(+) = priority(-)
When an operand lies between two operators, the operand associates with the operator that has higher priority.
![Page 23: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/23.jpg)
2323
Tie Breaker
When an operand lies between two operators that have the same priority, the operand associates with the operator on the left.– a + b - c– a * b / c / d
![Page 24: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/24.jpg)
2424
Delimiters
Subexpression within delimiters is treated as a single operand, independent from the remainder of the expression.– (a + b) * (c – d) / (e – f)
![Page 25: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/25.jpg)
2525
Infix Expression Is Hard To Parse
Need operator priorities, tie breaker, and delimiters.
This makes computer evaluation more difficult than is necessary.
Postfix and prefix expression forms do not rely on operator priorities, a tie breaker, or delimiters.
So it is easier for a computer to evaluate expressions that are in these forms.
![Page 26: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/26.jpg)
2626
Postfix Form
The postfix form of a variable or constant is the same as its infix form.– a, b, 3.25
The relative order of operands is the same in infix and postfix forms.
Operators come immediately after the postfix form of their operands.– Infix = a + b– Postfix = ab+
![Page 27: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/27.jpg)
2727
Postfix Examples
• Infix = a * b + c Postfix = a b * c +
• Infix = (a + b) * (c – d) / (e + f) Postfix = a b + c d - * e f + /
![Page 28: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/28.jpg)
2828
Postfix Evaluation
Scan postfix expression from left to right pushing operands on to a stack.
When an operator is encountered, pop as many operands as this operator needs; evaluate the operator; push the result on to the stack.
This works because, in postfix, operators come immediately after their operands.
![Page 29: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/29.jpg)
2929
Postfix Evaluation
(a + b) * (c – d) / (e + f) a b + c d - * e f + / a b + c d - * e f + /
stack
a
• a b + c d - * e f + /
b• a b + c d - * e f + /
![Page 30: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/30.jpg)
3030
Postfix Evaluation
(a + b) * (c – d) / (e + f) a b + c d - * e f + / a b + c d - * e f + /
stack
(a + b)
• a b + c d - * e f + /
• a b + c d - * e f + /• a b + c d - * e f + /
c
• a b + c d - * e f + /
d
• a b + c d - * e f + /
![Page 31: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/31.jpg)
3131
Postfix Evaluation
(a + b) * (c – d) / (e + f) a b + c d - * e f + /
stack
(a + b)
• a b + c d - * e f + /
(c – d)
![Page 32: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/32.jpg)
3232
Postfix Evaluation
(a + b) * (c – d) / (e + f) a b + c d - * e f + /
stack
(a + b)*(c – d)
• a b + c d - * e f + /
e
• a b + c d - * e f + /• a b + c d - * e f + / f• a b + c d - * e f + /
![Page 33: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/33.jpg)
3333
Postfix Evaluation
(a + b) * (c – d) / (e + f) a b + c d - * e f + /
stack
(a + b)*(c – d)
• a b + c d - * e f + /
(e + f)
• a b + c d - * e f + /• a b + c d - * e f + /
• a b + c d - * e f + /• a b + c d - * e f + /
![Page 34: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/34.jpg)
3434
Prefix Form
The prefix form of a variable or constant is the same as its infix form.– a, b, 3.25
The relative order of operands is the same in infix and prefix forms.
Operators come immediately before the prefix form of their operands.– Infix = a + b– Postfix = ab+– Prefix = +ab
![Page 35: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/35.jpg)
3535
Binary Tree Form
a + b+
a b
• - a -
a
![Page 36: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/36.jpg)
3636
Binary Tree Form
(a + b) * (c – d) / (e + f)
/
+
a b
-
c d
+
e f
*
/
![Page 37: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/37.jpg)
3737
Merits Of Binary Tree Form
Left and right operands are easy to visualize. Can obtain all pre-/in-/post-fix forms from the
tree (various traversals next slide)
+
a b
-
c d
+
e f
*
/
![Page 38: Tree 황승원 Fall 2010 CSE, POSTECH. 2 2 Nature Lover ’ s View Of A Tree root branches leaves](https://reader035.vdocuments.mx/reader035/viewer/2022081514/5697bfd91a28abf838cafbbf/html5/thumbnails/38.jpg)
3838
Coming Up Next
READING: Ch 12.1~12.3 NEXT: More on Binary Tree (Ch 12.4 ~ 12.8)