Trees and Binary Trees Become Rich Force Others to

Published  . 0 views
↓ Download
Trees and Binary Trees Become Rich Force Others to
1 / 1
Trees and Binary Trees Become Rich Force Others to - slide 1 of 35 Trees and Binary Trees Become Rich Force Others to - slide 2 of 35 Trees and Binary Trees Become Rich Force Others to - slide 3 of 35 Trees and Binary Trees Become Rich Force Others to - slide 4 of 35 Trees and Binary Trees Become Rich Force Others to - slide 5 of 35 Trees and Binary Trees Become Rich Force Others to - slide 6 of 35 Trees and Binary Trees Become Rich Force Others to - slide 7 of 35 Trees and Binary Trees Become Rich Force Others to - slide 8 of 35 Trees and Binary Trees Become Rich Force Others to - slide 9 of 35 Trees and Binary Trees Become Rich Force Others to - slide 10 of 35 Trees and Binary Trees Become Rich Force Others to - slide 11 of 35 Trees and Binary Trees Become Rich Force Others to - slide 12 of 35 Trees and Binary Trees Become Rich Force Others to - slide 13 of 35 Trees and Binary Trees Become Rich Force Others to - slide 14 of 35 Trees and Binary Trees Become Rich Force Others to - slide 15 of 35 Trees and Binary Trees Become Rich Force Others to - slide 16 of 35 Trees and Binary Trees Become Rich Force Others to - slide 17 of 35 Trees and Binary Trees Become Rich Force Others to - slide 18 of 35 Trees and Binary Trees Become Rich Force Others to - slide 19 of 35 Trees and Binary Trees Become Rich Force Others to - slide 20 of 35 Trees and Binary Trees Become Rich Force Others to - slide 21 of 35 Trees and Binary Trees Become Rich Force Others to - slide 22 of 35 Trees and Binary Trees Become Rich Force Others to - slide 23 of 35 Trees and Binary Trees Become Rich Force Others to - slide 24 of 35 Trees and Binary Trees Become Rich Force Others to - slide 25 of 35 Trees and Binary Trees Become Rich Force Others to - slide 26 of 35 Trees and Binary Trees Become Rich Force Others to - slide 27 of 35 Trees and Binary Trees Become Rich Force Others to - slide 28 of 35 Trees and Binary Trees Become Rich Force Others to - slide 29 of 35 Trees and Binary Trees Become Rich Force Others to - slide 30 of 35 Trees and Binary Trees Become Rich Force Others to - slide 31 of 35 Trees and Binary Trees Become Rich Force Others to - slide 32 of 35 Trees and Binary Trees Become Rich Force Others to - slide 33 of 35 Trees and Binary Trees Become Rich Force Others to - slide 34 of 35 Trees and Binary Trees Become Rich Force Others to - slide 35 of 35
Description: Trees and Binary Trees Become Rich Force Others to be Poor Rob Banks Stock Fraud The class notes are a compilation and edition from many sources. The instructor does not claim intellectual property or ownership of the lecture notes. Nature

Related Topics

Download Presentation

"Trees and Binary Trees Become Rich Force Others to" is the property of its rightful owner. Permission is granted to download and print the materials on this website for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.

Presentation Transcript

slide1. Trees and
Binary Trees Become Rich Force Others to be Poor Rob
Banks Stock
Fraud The class notes are a compilation and edition from many sources. The instructor does not claim intellectual property or ownership of the lecture notes.<br>
slide2. Nature View of a Tree branches leaves root<br>
slide3. Computer Scientist’s View branches leaves root nodes<br>
slide4. What is a Tree A tree is a finite nonempty set of elements.
It is an abstract model of a hierarchical structure.
consists of nodes with a parent-child relation.
Applications:
Organization charts
File systems
Programming environments Computers”R”Us Sales R&D Manufacturing Laptops Desktops US International Europe Asia Canada<br>
slide5. subtree Tree Terminology Root: node without parent (A)
Siblings: nodes share the same parent
Internal node: node with at least one child (A, B, C, F)
External node (leaf ): node without children (E, I, J, K, G, H, D)
Ancestors of a node: parent, grandparent, grand-grandparent, etc.
Descendant of a node: child, grandchild, grand-grandchild, etc.
Depth of a node: number of ancestors
Height of a tree: maximum depth of any node (3)
Degree of a node: the number of its children
Degree of a tree: the maximum number of its node. A B D C G H E F I J K Subtree: tree consisting of a node and its descendants<br>
slide6. Tree Properties A B C D G E F I H Property Value
Number of nodes
Height
Root Node
Leaves
Interior nodes
Ancestors of H
Descendants of B
Siblings of E
Right subtree of A
Degree of this tree<br>
slide7. Tree ADT We use positions to abstract nodes
Generic methods:
integer size()
boolean isEmpty()
objectIterator elements()
positionIterator positions()
Accessor methods:
position root()
position parent(p)
positionIterator children(p) Query methods:
boolean isInternal(p)
boolean isExternal(p)
boolean isRoot(p)
Update methods:
swapElements(p, q)
object replaceElement(p, o)
Additional update methods may be defined by data structures implementing the Tree ADT<br>
slide8. Intuitive Representation of Tree Node List Representation
( A ( B ( E ( K, L ), F ), C ( G ), D ( H ( M ), I, J ) ) )
The root comes first, followed by a list of links to sub-trees Data Link 1 Link 2 … Link n How many link fields are needed in
such a representation?<br>
slide9. Trees Every tree node:
object – useful information
children – pointers to its children Data Data   Data  Data   Data   Data   Data  <br>
slide10. A Tree Representation A node is represented by an object storing
Element
Parent node
Sequence of children nodes B D A C E F  B   A D F  C  E<br>
slide11. Left Child, Right Sibling Representation Data Left Child Right Sibling A B C D I H G F E J K L<br>
slide12. Tree Traversal Two main methods:
Preorder
Postorder
Recursive definition

Preorder:
visit the root
traverse in preorder the children (subtrees)

Postorder
traverse in postorder the children (subtrees)
visit the root<br>
slide13. Preorder Traversal A traversal visits the nodes of a tree in a systematic manner
In a preorder traversal, a node is visited before its descendants
Application: print a structured document Become Rich 1. Motivations 3. Success Stories 2. Methods 2.1 Get a CS PhD 2.2 Start a Web Site 1.1 Enjoy Life 1.2 Help Poor Friends 2.3 Acquired by Google 1 2 3 5 4 6 7 8 9 Algorithm preOrder(v)
visit(v)
for each child w of v
preorder (w)<br>
slide14. Postorder Traversal In a postorder traversal, a node is visited after its descendants
Application: compute space used by files in a directory and its subdirectories Algorithm postOrder(v)
for each child w of v
postOrder (w)
visit(v) cs16/ homeworks/ todo.txt
1K programs/ DDR.java
10K Stocks.java
25K h1c.doc
3K h1nc.doc
2K Robot.java
20K 9 3 1 7 2 4 5 6 8<br>
slide15. Binary Tree A binary tree is a tree with the following properties:
Each internal node has at most two children (degree of two)
The children of a node are an ordered pair

We call the children of an internal node left child and right child

Alternative recursive definition: a binary tree is either
a tree consisting of a single node, OR
a tree whose root has an ordered pair of children, each of which is a binary tree Applications:
arithmetic expressions
decision processes
searching A B C F G D E H I<br>
slide16. BinaryTree ADT 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<br>
slide17. Examples of the Binary Tree A B C G E I D H F Complete Binary Tree 1 2 3 4 A B A B Skewed Binary Tree E C D 5<br>
slide18. Differences Between A Tree and A Binary Tree The subtrees of a binary tree are ordered; those of a tree are not ordered. Are different when viewed as binary trees.
Are the same when viewed as trees. A B A B<br>
slide19. Data Structure for Binary Trees A node is represented by an object storing
Element
Parent node
Left child node
Right child node B D A C E       B A D C E <br>
slide20. Arithmetic Expression Tree Binary tree associated with an arithmetic expression
internal nodes: operators
external nodes: operands
Example: arithmetic expression tree for the expression (2 (a  1)  (3 b))     2 a 1 3 b<br>
slide21. Decision Tree Binary tree associated with a decision process
internal nodes: questions with yes/no answer
external nodes: decisions
Example: dining decision Want a fast meal? How about coffee? On expense account? Starbucks Spike’s Al Forno Café Paragon Yes No Yes No Yes No<br>
slide22. Maximum Number of Nodes in a Binary Tree The maximum number of nodes on depth i of a binary tree is 2i, i>=0.

The maximum nubmer of nodes in a binary tree of height k is 2k+1-1, k>=0. Prove by induction.<br>
slide23. Relations between Number of
Leaf Nodes and Nodes of Degree 2 For any nonempty binary tree, T, if n0 is the
number of leaf nodes and n2 the number of nodes
of degree 2, then n0=n2+1

PROOF:
Let n and B denote the total number of nodes and branches in T.
Let n0, n1, n2 represent the nodes with no children, single child, and two children respectively.

B+1=n
B=n1+2n2
n=n0+n1+n2  n1+2n2+1= n  n0=n2+1<br>
slide24. Full Binary Tree A full binary tree of a given height k has 2k+1–1 nodes. Height 3 full binary tree.<br>
slide25. Labeling Nodes In A Full Binary Tree Label the nodes 1 through 2k+1 – 1.
Label by levels from top to bottom.
Within a level, label from left to right. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15<br>
slide26. Node Number Properties Parent of node i is node i / 2, unless i = 1.
Node 1 is the root and has no parent. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15<br>
slide27. Node Number Properties Left child of node i is node 2i, unless 2i > n, where n is the number of nodes.
If 2i > n, node i has no left child. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15<br>
slide28. Node Number Properties Right child of node i is node 2i+1, unless 2i+1 > n, where n is the number of nodes.
If 2i+1 > n, node i has no right child. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15<br>
slide29. Complete Binary Trees A labeled binary tree containing the labels 1 to n with root 1, branches leading to nodes labeled 2 and 3, branches from these leading to 4, 5 and 6, 7, respectively, and so on.
A binary tree with n nodes and level k is complete iff its nodes correspond to the nodes numbered from 1 to n in the full binary tree of level k. 1 2 3 7 5 11 4 10 6 9 8 15 14 13 12 Full binary tree of depth 3 1 2 3 7 5 9 4 8 6 Complete binary tree<br>
slide30. Binary Tree Traversals Let l, R, and r stand for moving left, visiting
the node, and moving right.

There are six possible combinations of traversal
lRr, lrR, Rlr, Rrl, rRl, rlR

Adopt convention that we traverse left before
right, only 3 traversals remain
lRr, lrR, Rlr
inorder, postorder, preorder<br>
slide31. Inorder Traversal In an inorder traversal a node is visited after its left subtree and before its right subtree Algorithm inOrder(v)
if isInternal (v)
inOrder (leftChild (v))
visit(v)
if isInternal (v)
inOrder (rightChild (v)) 3 1 2 5 6 7 9 8 4<br>
slide32. Print Arithmetic Expressions Specialization of an inorder traversal
print operand or operator when visiting node
print “(“ before traversing left subtree
print “)“ after traversing right subtree Algorithm inOrder (v)
if isInternal (v){
print(“(’’)
inOrder (leftChild (v))}
print(v.element ())
if isInternal (v){
inOrder (rightChild (v))
print (“)’’)}     2 a 1 3 b ((2 (a  1))  (3 b))<br>
slide33. Evaluate Arithmetic Expressions recursive method returning the value of a subtree
when visiting an internal node, combine the values of the subtrees Algorithm evalExpr(v)
if isExternal (v)
return v.element ()
else
x  evalExpr(leftChild (v))
y  evalExpr(rightChild (v))
  operator stored at v
return x  y     2 5 1 3 2<br>
slide34. Creativity:
pathLength(tree) =  depth(v) v  tree Algorithm pathLength(v, n)
Input: a tree node v and an initial value n
Output: the pathLength of the tree with root v
Usage: pl = pathLength(root, 0);

if isExternal (v)
return n
return
(pathLength(leftChild (v), n + 1) +
pathLength(rightChild (v), n + 1) + n)<br>
slide35. Euler Tour Traversal Generic traversal of a binary tree
Includes a special cases the preorder, postorder and inorder traversals
Walk around the tree and visit each node three times:
on the left (preorder)
from below (inorder)
on the right (postorder)    2 5 1 3 2 L B R <br>
slide36. Euler Tour Traversal eulerTour(node v) {
perform action for visiting node on the left;
if v is internal then
eulerTour(v->left);
perform action for visiting node from below;
if v is internal then
eulerTour(v->right);
perform action for visiting node on the right;
}<br>