Title: CSCI201 DATA STRUCTURES Data and Program Organization
1CSCI201 DATA STRUCTURES(Data and Program
Organization)
2- Binary Tree
- Properties and Representation
3Definition of a Binary Tree
- A binary tree is a tree in which no node can
have more than two children. Because there are
only two children we name them left and right.
4Recursive Definition of a Binary Tree
- A binary tree is either empty or consists of a
root, a left tree and a right tree. The left and
right trees may themselves be empty. Thus a node
with one child could have a left or a right child.
5(No Transcript)
6(No Transcript)
7An expression tree such as this one is an
essential data structure in compiler design.
8(No Transcript)
9(No Transcript)
10Binary Tree Properties Representation
11Minimum Number Of Nodes in a Binary Tree
minimum number of nodes of a binary tree of
height h is h 1
12Maximum Number Of Nodes
Maximum number of nodes (N) in a binary tree is
2h1 - 1 For a height h of 3, N 1 2 4 8
15 ( 24 - 1)
13Number Of Nodes Height
- Let n be the number of nodes in a binary tree
whose height is h. - h1 lt n lt 2h1 1
- i.e. the value of n lies between the minimum
h1 and the maximum 2h1 1 - log2(n1) lt h1 lt n
- e.g. for n 7, then log2(8) height of 2
for a balanced binary tree, or height 6 for
binary tree where each node has only one child .
. .
14The Logarithm
- 2x n
- 23 8
- log28 3
- When logarithms are used in computer science,
the base is always 2. Note, the log base 2 of a
number always results in a smaller number.
15Balanced complete binary tree. n 7, h 2
16Unbalanced complete binary tree. n 6, h 2
17Unbalanced incomplete binary tree. n 6, h 2
18Right-skewed binary tree. n 7, h 6
19Full Binary Tree
- A full binary tree of a given height h has 2h1
1 nodes.
20Numbering Nodes In A Full Binary Tree
- Number the nodes 1 through 2h1 1.
- Number by levels from top to bottom.
- Within a level number from left to right.
1
2
3
4
6
5
7
8
9
10
11
12
13
14
15
21Node Number Properties
- Parent of node i is node i / 2, unless i 1.
- Node 1 is the root and has no parent.
22Node Number Properties
- Left child of node i is node 2i, unless 2i gt n,
where n is the number of nodes. - If 2i gt n, node i has no left child.
23Node Number Properties
- Right child of node i is node 2i1, unless 2i1 gt
n, where n is the number of nodes. - If 2i1 gt n, node i has no right child.
24Complete Binary Tree With n Nodes
- Start with a full binary tree that has at least n
nodes. - Number the nodes as described earlier.
- The binary tree defined by the nodes numbered 1
through n is the unique n node complete binary
tree.
25Example
- Complete binary tree with 10 nodes.
26Example
- Complete binary tree with 15 nodes.
27Binary Tree Representation
- Array representation.
- Linked representation.
28Array Representation
- Number the nodes using the numbering scheme for a
full binary tree. The node that is numbered i is
stored in treei.
a
b
c
d
e
f
g
h
i
j
29Right-Skewed Binary Tree
- An n node binary tree needs an array whose length
is between n1 and 2n.
30Linked Representation
- Each binary tree node is represented as an object
whose data type is BinaryTreeNode. - The space required by an n node binary tree is n
(space required by one node).
31The Class BinaryTreeNode
- package dataStructures
- public class BinaryTreeNode
-
- Object element
- BinaryTreeNode leftChild // left subtree
- BinaryTreeNode rightChild// right subtree
- // constructors and any other methods
- // come here
-
32Linked Representation Example
33Some Binary Tree Operations
- Determine the height.
- Determine the number of nodes.
- Make a clone.
- Determine if two binary trees are clones.
- Display the binary tree.
- Evaluate the arithmetic expression represented by
a binary tree. - Obtain the infix form of an expression.
- Obtain the prefix form of an expression.
- Obtain the postfix form of an expression.
34Binary Tree Traversal
- Many binary tree operations are done by
performing a traversal of the binary tree. - In a traversal, each element of the binary tree
is visited exactly once. - During the visit of an element, all action (make
a clone, display, evaluate the operator, etc.)
with respect to this element is taken.
35Binary Tree Traversal Methods
- Preorder
- Inorder
- Postorder
- Level order
36 37- Last Updated Friday 1st October 2004, 954 PT,
AHD