binary search trees
play

Binary search trees Dictionary ADT Binary search tree properties - PowerPoint PPT Presentation

Binary search trees Dictionary ADT Binary search tree properties Search Insertion February 04, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 1 By the way... Here is a reference to the "three dots" tree traversal shown in


  1. Binary search trees Dictionary ADT Binary search tree properties Search Insertion February 04, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 1

  2. By the way... • Here is a reference to the "three dots" tree traversal shown in class: – https://en.wikibooks.org/wiki/A- level_Computing/AQA/Paper_1/Fundamentals_of_algorithms/Tree_tra versal – Trace around the tree counter-clockwise – Visit a node when you hit one of its markers for pre-, post-, or in-order February 04, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 2

  3. Motivation for an efficient lookup Dictionary ADT • Stores values associated with user-specified keys – Values may be any (homogenous) type – Keys may be any (homogenous) comparable type • Dictionary operations – Create • Super 9 LC Insert – Destroy • Park it on the sidewalk, it's OK • – Insert Feet • • Useful for something, Z125 Pro – Find • presumably Fun in the sun! – Remove • CB300F Find(Z125 Pro) • For the mild-mannered commuter • Z125 Pro • Fun in the sun! February 04, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 3

  4. Data structures for Dictionary ADT Naïve implementations, complexity Search Insert Remove • Linked list • Unsorted array • Sorted array • Ordered linked list February 04, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 4

  5. Binary search tree property • A binary search tree is a binary tree with a special property – For all nodes in the tree: • All nodes in a left subtree have labels less than the label of the subtree's root • All nodes in a right subtree have labels greater than or equal to the label of the subtree's root • Binary search trees are fully ordered February 04, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 5

  6. BST example 17 13 27 9 16 20 39 11 February 04, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 6

  7. BST inOrder traversal inOrder(nd->leftchild); inOrder traversal on a BST retrieves data in sorted order 5 visit(nd); inOrder(nd->rightchild); 17 3 7 inOrder(left) inOrder(left) 13 27 visit visit inOrder(right) inOrder(right) 8 4 6 1 inOrder(left) inOrder(left) inOrder(left) 16 20 39 visit 9 visit visit inOrder(right) inOrder(right) inOrder(right) inOrder(left) visit 2 inOrder(right) inOrder(left) 11 visit inOrder(right) February 04, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 7

  8. BST implementation • Binary search trees can be implemented using a reference structure • Tree nodes contain data and two pointers to nodes Node* leftchild data Node* rightchild Data to be stored in the tree (usually an object) References or pointers to other tree Nodes February 04, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 8

  9. BST search • To find a value in a BST search from the root node: – If the target is less than the value in the node search its left subtree – If the target is greater than the value in the node search its right subtree – Otherwise return true, (or a pointer to the data, or …) • How many comparisons? – One for each node on the path – Worst case: height of the tree + 1 February 04, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 9

  10. BST search example search(27); 17 27 February 04, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 10

  11. BST search example search(16); 17 13 16 February 04, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 11

  12. BST search example search(12); 17 13 9 11 February 04, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 12

  13. BST insertion • The BST property must hold after insertion • Therefore the new node must be inserted in the correct position – This position is found by performing a search – If the search ends at the (null) left child of a node make its left child refer to the new node – If the search ends at the right child of a node make its right child refer to the new node • The cost is about the same as the cost for the search algorithm, O( height ) February 04, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 13

  14. BST insertion example Insert 43 47 Create new node Find position 32 63 Link node 19 41 54 79 43 10 23 37 44 53 59 96 7 12 30 43 57 91 97 February 04, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 14

  15. BST insertion example Create new BST 3 Insert 3 Insert 15 15 Insert 21 Insert 23 21 Insert 37 Search 45 23 How many operations for Search? Complexity? 37 February 04, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 15

  16. Find min, Find max • Find minimum: – From the root, keep following left child links until no more left child exists • Find maximum: – From the root, follow right child links until no more right child exists 43 18 68 12 33 52 7 27 39 50 56 9 21 67 February 04, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 16

  17. Readings for this lesson • Carrano & Henry – Chapter 15.2 – 15.3 (Binary/search tree) – Chapter 18.1 (Dictionary) • Next class: – Chapter 15.3, 16.1 – 16.2 (Binary search tree) February 04, 2019 Cinda Heeren / Will Evans / Geoffrey Tien 17

Recommend


More recommend