Binary search trees
This presentation is the property of its rightful owner.
Sponsored Links
1 / 20

Binary Search Trees PowerPoint PPT Presentation


  • 48 Views
  • Uploaded on
  • Presentation posted in: General

Binary Search Trees. BST Properties. Have all properties of binary tree Items in left subtree are smaller than items in any node Items in right subtree are larger than items in any node. Items. Items must be comparable All items have a unique value Given two distinct items x and y either

Download Presentation

Binary Search Trees

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Binary search trees

Binary Search Trees


Bst properties

BST Properties

  • Have all properties of binary tree

  • Items in left subtree are smaller than items in any node

  • Items in right subtree are larger than items in any node


Items

Items

  • Items must be comparable

  • All items have a unique value

  • Given two distinct items x and y either

    • value(x) < value(y)

    • value(x) > value(y)

  • If value(x) = value(y) then x = y

  • It will simplify programming to assume there are no duplicates in our set of items.


Items1

Items

  • Need to map Items to a numerical value

  • Integers

    • Value(x) = x

  • People

    • Value(x) = ssn

    • Value(x) = student id


Comparable interface

Comparable Interface

  • Want general tree code

  • Requirement of item is that it supports

    • <

    • >

    • =

  • Java uses Interfaces for implementation

  • Similar to abstract method

  • Specify a method that using class is responsible for


Bst operations

BST Operations

  • Constructor

  • Insert

  • Find

    • Findmin

    • Findmax

  • Remove


Bst operations1

BST Operations

  • Generally Recursive

BinaryNode operation( Comparable x, BinaryNode t ) {

// End of path

if( t == null )

return null;

if( x.compareTo( t.element ) < 0 )

return operation( x, t.left );

else if( x.compareTo( t.element ) > 0 )

return operation( x, t.right );

else

return t; // Match

}


Bst find method

BST Find Method

private BinaryNode find( Comparable x, BinaryNode t )

{

if( t == null )

return null;

if( x.compareTo( t.element ) < 0 )

return find( x, t.left );

else if( x.compareTo( t.element ) > 0 )

return find( x, t.right );

else

return t; // Match

}


Bst remove operations

BST Remove Operations

  • Remove

    • Node is leaf

      • Remove node

    • Node has one child

      • Replace node with child

    • Node has two children

      • Replace node with smallest child of right subtree.


Removing with value 2

Removing with value 2

6

6

6

2

8

3

8

3

8

1

1

1

5

5

5

3

3

3

4

4

4


Remove method

Remove method

private BinaryNode remove( Comparable x, BinaryNode t )

{

if( t == null )

return t; // Item not found; do nothing

if( x.compareTo( t.element ) < 0 )

t.left = remove( x, t.left );

else if( x.compareTo( t.element ) > 0 )

t.right = remove( x, t.right );

else if( t.left != null && t.right != null ) // Two children

{

t.element = findMin( t.right ).element;

t.right = remove( t.element, t.right );

}

else

t = ( t.left != null ) ? t.left : t.right;

return t;

}


Internal path length

Internal Path Length

  • Review depth/height

  • Depth

    • Depth is number of path segments from root to node

    • Depth of node is distance from root to that node.

    • Depth is unique

    • Depth of root is 0


Internal path length1

Internal Path Length

  • Height

    • Height is maximum distance from node to a leaf.

    • There can be many paths from a node to a leaf.

    • The height of the tree is another way of saying height of the root.


Internal path length2

Internal Path Length

  • IPL is the sum of the depths of all the nodes in a tree

  • It gives a measure of how well balanced the tree is.


Internal path length3

Internal Path Length

N = 4

IPL = 1 + 1 + 2 = 4

1

1

2


Internal path length4

Internal Path Length

N = 4

IPL = 1 + 2 + 3 = 6

1

2

3


Average ipl for n nodes n 4

1

1

1

2

2

3

Average IPL for N nodesN = 4

  • Calculate IPL of all possible trees

1

2

2


Bst efficiency

BST Efficiency

  • If tree is balanced O(log(n))

  • No guarantee that tree will be balanced

  • Analysis in book suggests on IPL = O(nlog(n))

  • This analysis is based on the assumption that all trees are equally likely

  • Could always get the worst case (a degenerate tree).


Where do bst fit in

Where do BST fit in

  • Simple to understand

  • Works for small datasets

  • Basis for more complicated trees

  • Using inheritance can implement

    • AVL trees

    • Splay trees

    • Red Black trees


Do your lex

Do your Lex


  • Login