CSCI201 DATA STRUCTURES Data and Program Organization - PowerPoint PPT Presentation

1 / 37
About This Presentation
Title:

CSCI201 DATA STRUCTURES Data and Program Organization

Description:

A binary tree is a tree in which no node can have more than two children. ... Obtain the infix form of an expression. Obtain the prefix form of an expression. ... – PowerPoint PPT presentation

Number of Views:23
Avg rating:3.0/5.0
Slides: 38
Provided by: AnneD71
Category:

less

Transcript and Presenter's Notes

Title: CSCI201 DATA STRUCTURES Data and Program Organization


1
CSCI201 DATA STRUCTURES(Data and Program
Organization)
2
  • Binary Tree
  • Properties and Representation

3
Definition 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.

4
Recursive 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)
7
An expression tree such as this one is an
essential data structure in compiler design.
8
(No Transcript)
9
(No Transcript)
10
Binary Tree Properties Representation
11
Minimum Number Of Nodes in a Binary Tree
minimum number of nodes of a binary tree of
height h is h 1
12
Maximum 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)
13
Number 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 .
    . .

14
The 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.

15
Balanced complete binary tree. n 7, h 2
16
Unbalanced complete binary tree. n 6, h 2
17
Unbalanced incomplete binary tree. n 6, h 2
18
Right-skewed binary tree. n 7, h 6
19
Full Binary Tree
  • A full binary tree of a given height h has 2h1
    1 nodes.

20
Numbering 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
21
Node Number Properties
  • Parent of node i is node i / 2, unless i 1.
  • Node 1 is the root and has no parent.

22
Node 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.

23
Node 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.

24
Complete 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.

25
Example
  • Complete binary tree with 10 nodes.

26
Example
  • Complete binary tree with 15 nodes.

27
Binary Tree Representation
  • Array representation.
  • Linked representation.

28
Array 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
29
Right-Skewed Binary Tree
  • An n node binary tree needs an array whose length
    is between n1 and 2n.

30
Linked 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).

31
The Class BinaryTreeNode
  • package dataStructures
  • public class BinaryTreeNode
  • Object element
  • BinaryTreeNode leftChild // left subtree
  • BinaryTreeNode rightChild// right subtree
  • // constructors and any other methods
  • // come here

32
Linked Representation Example
33
Some 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.

34
Binary 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.

35
Binary Tree Traversal Methods
  • Preorder
  • Inorder
  • Postorder
  • Level order

36
  • End of BinaryTrees.ppt

37
  • Last Updated Friday 1st October 2004, 954 PT,
    AHD
Write a Comment
User Comments (0)
About PowerShow.com