SlideServe
Menu
Préférences
© SlideServe · v2026

Binary Search Trees

platt avatar
23 diapositives · 541 Views · Dec 03, 2012

Binary Search Trees . Eileen Kraemer CSCI 2720 The University of Georgia Spring 2007. Overview. Binary trees Binary search trees Find Insert Delete. Hierarchical Data Structures. One-to-many relationship between elements Tree Single parent, multiple children Binary tree

Binary Search Trees - slide 1
01 / 23Binary Search Trees
1 / 17

Télécharger la présentation

Binary Search Trees
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Binary Search Trees Eileen Kraemer CSCI 2720 The University of Georgia Spring 2007

  2. Overview • Binary trees • Binary search trees • Find • Insert • Delete

  3. Hierarchical Data Structures • One-to-many relationship between elements • Tree • Single parent, multiple children • Binary tree • Tree with 0–2 children per node Tree Binary Tree

  4. Trees • Terminology • Root no predecessor • Leaf no successor • Interior non-leaf • Height distance from root to leaf Root node Height Interior nodes Leaf nodes

  5. Types of Binary Trees • Degenerate – only one child • Balanced – mostly two children • Complete – always two children Degenerate binary tree Balanced binary tree Complete binary tree

  6. Degenerate Height = O(n) for n nodes Similar to linear list Balanced Height = O( log(n) ) for n nodes Useful for searches Binary Trees Properties Degenerate binary tree Balanced binary tree

  7. Binary Search Trees • Key property • Value at node • Smaller values in left subtree • Larger values in right subtree • Example • X > Y • X < Z X Y Z

  8. Binary Search Trees • Examples 5 10 10 2 45 5 30 5 45 30 2 25 45 2 25 30 10 25 Binary search trees Non-binary search tree

  9. Binary Tree Implementation Class Node { Value data; Node left, right; // null if empty void insert ( Value data1 ) { … } void delete ( Value data2 ) { … } Node find ( Value data3 ) { … } … }

  10. Polymorphic Binary Tree Implement. Interface Node { Node insert ( Value data1 ) { … } } Class EmptyNode { Node insert ( Value data1 ) { … } } Class NonEmptyNode { Value data; Node left, right; // Either Empty or NonEmpty void insert ( Value data1 ) { … } }

  11. Iterative Search of Binary Tree Node Find( Node n, Value key) { while (n != null) { if (n.data == key) // Found it return n; if (n.data > key) // In left subtree n = n.left; else // In right subtree n = n.right; } return null; } … Find( root,key_val );

  12. Recursive Search of Binary Tree Node Find( Node n, Value key) { if (n == null) // Not found return( n ); elseif (n.data == key) // Found it return( n ); else if (n.data > key) // In left subtree return Find( n.left ); else // In right subtree return Find( n.right ); } Find( root );

  13. Example Binary Searches • Find ( 2 ) 5 10 10 > 2, left 5 > 2, left 2 = 2, found 5 > 2, left 2 = 2, found 2 45 5 30 30 2 25 45 10 25

  14. Example Binary Searches • Find ( 25 ) 5 10 10 < 25, right 30 > 25, left 25 = 25, found 5 < 25, right 45 > 25, left 30 > 25, left 10 < 25, right 25 = 25, found 2 45 5 30 30 2 25 45 10 25

  15. Binary Search Properties • Time of search • Proportional to height of tree • Balanced binary tree • O( log(n) ) time • Degenerate tree • O( n ) time • Like searching linked list / unsorted array • Requires • Ability to compare key values

  16. Binary Search Tree Construction • How to build & maintain binary trees? • Insertion • Deletion • Maintain key property (invariant) • Smaller values in left subtree • Larger values in right subtree

  17. Binary Search Tree – Insertion • Algorithm • Perform search for value X • Search will end at node Y (if X not in tree) • If X < Y, insert new leaf X as new left subtree for Y • If X > Y, insert new leaf X as new right subtree for Y • Observations • O( log(n) ) operation for balanced tree • Insertions may unbalance tree

  18. Example Insertion • Insert ( 20 ) 10 10 < 20, right 30 > 20, left 25 > 20, left Insert 20 on left 5 30 2 25 45 20

  19. Binary Search Tree – Deletion • Algorithm • Perform search for value X • If X is a leaf, delete X • Else // must delete internal node • a) Replace with largest value Y on left subtree OR smallest value Z on right subtree • b) Delete replacement value (Y or Z) from subtree • Observation • O( log(n) ) operation for balanced tree • Deletions may unbalance tree

  20. Example Deletion (Leaf) • Delete ( 25 ) 10 10 10 < 25, right 30 > 25, left 25 = 25, delete 5 30 5 30 2 25 45 2 45

  21. Example Deletion (Internal Node) • Delete ( 10 ) 10 5 5 5 30 5 30 2 30 2 25 45 2 25 45 2 25 45 Replacing 10 with largest value in left subtree Replacing 5 with largest value in left subtree Deleting leaf

  22. Example Deletion (Internal Node) • Delete ( 10 ) 10 25 25 5 30 5 30 5 30 2 25 45 2 25 45 2 45 Replacing 10 with smallest value in right subtree Deleting leaf Resulting tree

  23. Still need to talk about … • Static BSTs (we looked at some example) • Optimal BSTs • Probability-balanced trees • Median split trees • but in the meantime, let’s jump forward to AVL trees.