![Page 1: 1 Binary Trees (7.3) CSE 2011 Winter 2011 12 November 2015](https://reader036.vdocument.in/reader036/viewer/2022070401/56649f1f5503460f94c37207/html5/thumbnails/1.jpg)
1
Binary Trees (7.3)
CSE 2011
Winter 2011
April 20, 2023
![Page 2: 1 Binary Trees (7.3) CSE 2011 Winter 2011 12 November 2015](https://reader036.vdocument.in/reader036/viewer/2022070401/56649f1f5503460f94c37207/html5/thumbnails/2.jpg)
2
Binary Trees
A tree in which each node can have at most two children.
The depth of an “average” binary tree is considerably smaller than N. In the worst case, the depth can be as large as N – 1.
Generic binary tree
Worst-casebinary tree
![Page 3: 1 Binary Trees (7.3) CSE 2011 Winter 2011 12 November 2015](https://reader036.vdocument.in/reader036/viewer/2022070401/56649f1f5503460f94c37207/html5/thumbnails/3.jpg)
3
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
![Page 4: 1 Binary Trees (7.3) CSE 2011 Winter 2011 12 November 2015](https://reader036.vdocument.in/reader036/viewer/2022070401/56649f1f5503460f94c37207/html5/thumbnails/4.jpg)
4
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
![Page 5: 1 Binary Trees (7.3) CSE 2011 Winter 2011 12 November 2015](https://reader036.vdocument.in/reader036/viewer/2022070401/56649f1f5503460f94c37207/html5/thumbnails/5.jpg)
Trees 5
BinaryTree ADT
The BinaryTree ADT extends the Tree ADT, i.e., it inherits all the methods of the Tree ADT
Additional methods:position left(p)position right(p)boolean hasLeft(p)boolean hasRight(p)
Update methods may be defined by data structures implementing the BinaryTree ADT
![Page 6: 1 Binary Trees (7.3) CSE 2011 Winter 2011 12 November 2015](https://reader036.vdocument.in/reader036/viewer/2022070401/56649f1f5503460f94c37207/html5/thumbnails/6.jpg)
Implementing Binary Trees
Arrays?Discussed later
Linked structure?
6
![Page 7: 1 Binary Trees (7.3) CSE 2011 Winter 2011 12 November 2015](https://reader036.vdocument.in/reader036/viewer/2022070401/56649f1f5503460f94c37207/html5/thumbnails/7.jpg)
7
Linked Structure of Binary Trees
class BinaryNode {Object elementBinaryNode left;BinaryNode right;BinaryNode parent;
}
![Page 8: 1 Binary Trees (7.3) CSE 2011 Winter 2011 12 November 2015](https://reader036.vdocument.in/reader036/viewer/2022070401/56649f1f5503460f94c37207/html5/thumbnails/8.jpg)
8
Linked Structure of Binary Trees (2)
A node is represented by an object storing Element Parent node Left child node Right child node
B
DA
C E
B
A D
C E
![Page 9: 1 Binary Trees (7.3) CSE 2011 Winter 2011 12 November 2015](https://reader036.vdocument.in/reader036/viewer/2022070401/56649f1f5503460f94c37207/html5/thumbnails/9.jpg)
9
Binary Tree Traversal
Preorder (node, left, right)Postorder (left, right, node) Inorder (left, node, right)
![Page 10: 1 Binary Trees (7.3) CSE 2011 Winter 2011 12 November 2015](https://reader036.vdocument.in/reader036/viewer/2022070401/56649f1f5503460f94c37207/html5/thumbnails/10.jpg)
10
Preorder Traversal: Example
Preorder traversal node, left, right prefix expression
+ + a * b c * + * d e f g
![Page 11: 1 Binary Trees (7.3) CSE 2011 Winter 2011 12 November 2015](https://reader036.vdocument.in/reader036/viewer/2022070401/56649f1f5503460f94c37207/html5/thumbnails/11.jpg)
11
Postorder Traversal: Example
Postorder traversal left, right, node postfix expression
a b c * + d e * f + g * +
![Page 12: 1 Binary Trees (7.3) CSE 2011 Winter 2011 12 November 2015](https://reader036.vdocument.in/reader036/viewer/2022070401/56649f1f5503460f94c37207/html5/thumbnails/12.jpg)
12
Inorder Traversal: Example
Inorder traversal left, node, right infix expression
a + b * c + d * e + f * g
![Page 13: 1 Binary Trees (7.3) CSE 2011 Winter 2011 12 November 2015](https://reader036.vdocument.in/reader036/viewer/2022070401/56649f1f5503460f94c37207/html5/thumbnails/13.jpg)
13
Pseudo-code for Binary Tree Traversal
![Page 14: 1 Binary Trees (7.3) CSE 2011 Winter 2011 12 November 2015](https://reader036.vdocument.in/reader036/viewer/2022070401/56649f1f5503460f94c37207/html5/thumbnails/14.jpg)
14
Properties of Proper Binary Trees
A binary trees is proper if each node has either zero or two children.
Level: depthThe root is at level 0Level d has at most 2d nodes
Notation:n number of nodese number of external
(leaf) nodesi number of internal
nodesh height
n e + ie i 1h+1 e 2h
n 2e 1h i 2h – 12h+1 n 2h+1 – 1
log2 e h e – 1
log2 (i 1) h i
log2 (n 1) 1 h (n 1)2
![Page 15: 1 Binary Trees (7.3) CSE 2011 Winter 2011 12 November 2015](https://reader036.vdocument.in/reader036/viewer/2022070401/56649f1f5503460f94c37207/html5/thumbnails/15.jpg)
15
Properties of (General) Binary Trees
Level: depthThe root is at level 0Level d has at most 2d nodes
Notation:n number of nodese number of external
(leaf) nodesi number of internal
nodesh height
h+1 n 2h+1 – 1
1 e 2h
h i 2h – 1
log2 (n 1) 1 h n 1
![Page 16: 1 Binary Trees (7.3) CSE 2011 Winter 2011 12 November 2015](https://reader036.vdocument.in/reader036/viewer/2022070401/56649f1f5503460f94c37207/html5/thumbnails/16.jpg)
Trees 16
Array-Based Implementation
Nodes are stored in an array.
…
Let rank(v) be defined as follows: rank(root) = 1 if v is the left child of parent(v),
rank(v) = 2 * rank(parent(v)) if v is the right child of parent(v),
rank(v) = 2 * rank(parent(v)) + 1
1
2 3
6 74 5
10 11
A
HG
FE
D
C
B
J
![Page 17: 1 Binary Trees (7.3) CSE 2011 Winter 2011 12 November 2015](https://reader036.vdocument.in/reader036/viewer/2022070401/56649f1f5503460f94c37207/html5/thumbnails/17.jpg)
17
Array Implementation of Binary Trees
Each node v is stored at index i defined as follows: If v is the root, i = 1 The left child of v is in position 2i The right child of v is in position 2i + 1 The parent of v is in position ???
![Page 18: 1 Binary Trees (7.3) CSE 2011 Winter 2011 12 November 2015](https://reader036.vdocument.in/reader036/viewer/2022070401/56649f1f5503460f94c37207/html5/thumbnails/18.jpg)
18
Space Analysis of Array Implementation
n: number of nodes of binary tree TpM: index of the rightmost leaf of the corresponding full binary
tree (or size of the full tree)N: size of the array needed for storing T; N = pM + 1
Best-case scenario: balanced, full binary tree pM = n
Worst case scenario: unbalanced treeHeight h = n – 1Size of the corresponding full tree:
pM = 2h+1 – 1= 2n – 1
N = 2n
Space usage: O(2n)
![Page 19: 1 Binary Trees (7.3) CSE 2011 Winter 2011 12 November 2015](https://reader036.vdocument.in/reader036/viewer/2022070401/56649f1f5503460f94c37207/html5/thumbnails/19.jpg)
19
Arrays versus Linked Structure
Linked listsSlower operations due to
pointer manipulationsUse less space if the tree
is unbalancedAVL trees: rotation
(restructuring) code is simple
ArraysFaster operations
Use less space if the tree is balanced (no pointers)
AVL trees: rotation (restructuring) code is complex
![Page 20: 1 Binary Trees (7.3) CSE 2011 Winter 2011 12 November 2015](https://reader036.vdocument.in/reader036/viewer/2022070401/56649f1f5503460f94c37207/html5/thumbnails/20.jpg)
20
Next time …
Binary Search Trees (10.1)