Binary Search Trees < > =

Slides:



Advertisements
Similar presentations
© 2004 Goodrich, Tamassia Binary Search Trees
Advertisements

Data Structures Lecture 11 Fang Yu Department of Management Information Systems National Chengchi University Fall 2010.
© 2004 Goodrich, Tamassia Binary Search Trees   
Goodrich, Tamassia Search Trees1 Binary Search Trees   
CSC311: Data Structures 1 Chapter 10: Search Trees Objectives: Binary Search Trees: Search, update, and implementation AVL Trees: Properties and maintenance.
CSC 213 Lecture 7: Binary, AVL, and Splay Trees. Binary Search Trees (§ 9.1) Binary search tree (BST) is a binary tree storing key- value pairs (entries):
Binary Search Trees1 Part-F1 Binary Search Trees   
Binary Search Trees   . 2 Ordered Dictionaries Keys are assumed to come from a total order. New operations: closestKeyBefore(k) closestElemBefore(k)
Binary Search Trees1 ADT for Map: Map stores elements (entries) so that they can be located quickly using keys. Each element (entry) is a key-value pair.
© 2004 Goodrich, Tamassia Trees1 Lecture 04 Trees Topics Trees Binary Trees Binary Search trees.
© 2004 Goodrich, Tamassia (2,4) Trees
Lecture12: Tree II Bohyung Han CSE, POSTECH CSED233: Data Structures (2014F)
Search Trees Last Update: Nov 5, 2014 EECS2011: Search Trees1 “Grey Tree”, Piet Mondrian, 1912.
Search Trees. Binary Search Tree (§10.1) A binary search tree is a binary tree storing keys (or key-element pairs) at its internal nodes and satisfying.
Binary Search Trees (10.1) CSE 2011 Winter November 2015.
© 2004 Goodrich, Tamassia Binary Search Trees1 CSC 212 Lecture 18: Binary and AVL Trees.
Search Trees Chapter   . Outline  Binary Search Trees  AVL Trees  Splay Trees.
Binary Search Trees   . 2 Binary Search Tree Properties A binary search tree is a binary tree storing keys (or key-element pairs) at its.
Chapter 10: Search Trees Nancy Amato Parasol Lab, Dept. CSE, Texas A&M University Acknowledgement: These slides are adapted from slides provided with Data.
1 Searching the dictionary ADT binary search binary search trees.
3.1. Binary Search Trees   . Ordered Dictionaries Keys are assumed to come from a total order. Old operations: insert, delete, find, …
Binary Search Trees (BST)
Binary Search Trees1 Chapter 3, Sections 1 and 2: Binary Search Trees AVL Trees   
1 Binary Search Trees   . 2 Ordered Dictionaries Keys are assumed to come from a total order. New operations: closestKeyBefore(k) closestElemBefore(k)
CHAPTER 10.1 BINARY SEARCH TREES    1 ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS.
© 2004 Goodrich, Tamassia BINARY SEARCH TREES Binary Search Trees   
Algorithms Design Fall 2016 Week 6 Hash Collusion Algorithms and Binary Search Trees.
Part-D1 Binary Search Trees
Binary Search Trees < > = © 2010 Goodrich, Tamassia
Binary Search Trees < > =
COMP9024: Data Structures and Algorithms
Red-Black Trees 5/17/2018 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and.
AVL Trees 5/17/2018 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M.
Red-Black Trees 5/22/2018 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and.
Trees Make Money Fast! Stock Fraud Ponzi Scheme Bank Robbery
Binary Search Trees < > =
Search Trees.
Binary Search Trees < > =
Binary Search Trees Rem Collier Room A1.02
Binary Search Tree (BST)
Binary Search Trees (10.1) CSE 2011 Winter August 2018.
Chapter 10 Search Trees 10.1 Binary Search Trees Search Trees
Heaps 8/2/2018 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser,
Binary Search Tree Chapter 10.
Chapter 10.1 Binary Search Trees
Section 8.1 Trees.
Binary Search Trees < > = Binary Search Trees
Binary Search Trees (10.1) CSE 2011 Winter November 2018.
(2,4) Trees (2,4) Trees 1 (2,4) Trees (2,4) Trees
Binary Search Trees < > = © 2010 Goodrich, Tamassia
Copyright © Aiman Hanna All rights reserved
Binary Search Trees < > =
Binary Search Trees < > = Binary Search Trees
Search Sorted Array: Binary Search Linked List: Linear Search
Dictionaries < > = /3/2018 8:58 AM Dictionaries
© 2013 Goodrich, Tamassia, Goldwasser
Dictionaries < > = /9/2018 3:06 AM Dictionaries
(2,4) Trees (2,4) Trees (2,4) Trees.
Binary Search Trees < > =
Dictionaries < > = /17/2019 4:20 PM Dictionaries
(2,4) Trees 2/15/2019 (2,4) Trees (2,4) Trees.
Heaps © 2014 Goodrich, Tamassia, Goldwasser Heaps Heaps
(2,4) Trees (2,4) Trees (2,4) Trees.
Binary Search Trees < > =
Binary Search Trees < > = Binary Search Trees
Search Sorted Array: Binary Search Linked List: Linear Search
1 Lecture 13 CS2013.
Binary Search Trees < > = Dictionaries
Data Structures Using C++ 2E
Dictionaries 二○一九年九月二十四日 ADT for Map:
Presentation transcript:

Binary Search Trees < > = 6 2 9 1 4 8 2/22/2019 Binary Search Trees < 6 2 > 9 1 4 = 8 © 2014 Goodrich, Tamassia, Goldwasser Binary Search Trees

Ordered Maps Keys are assumed to come from a total order. Items are stored in order by their keys This allows us to support nearest neighbor queries (floor and ceiling): Item with largest key less than or equal to k Item with smallest key greater than or equal to k © 2014 Goodrich, Tamassia, Goldwasser Binary Search Trees

Ordered/Sorted Maps Sorted Array Skip Lists Insertion and deletion could move a lot of entries Skip Lists Keys could be duplicated in multiple levels Expected O(log n) time for search/get Not worst-case O(log n) time © 2014 Goodrich, Tamassia, Goldwasser Binary Search Trees

Binary Search Trees A binary search tree is a binary tree storing keys (or key-value entries) at its internal nodes: Let u, v, and w be three nodes such that u is in the left subtree of v and w is in the right subtree of v. We have key(u)  key(v)  key(w) External nodes do not store items An inorder traversal of a binary search trees visits the keys in increasing order 6 9 2 4 1 8 © 2014 Goodrich, Tamassia, Goldwasser Binary Search Trees

Binary Search Trees 2/22/2019 Search Algorithm TreeSearch(k, v) if T.isExternal (v) return v if k < key(v) return TreeSearch(k, left(v)) else if k = key(v) else { k > key(v) } return TreeSearch(k, right(v)) To search for a key k, we trace a downward path starting at the root The next node visited depends on the comparison of k with the key of the current node If we reach a leaf, the key is not found Example: get(4): Call TreeSearch(4,root) The algorithms for nearest neighbor queries are similar < 6 2 > 9 1 4 = 8 © 2014 Goodrich, Tamassia, Goldwasser Binary Search Trees

Insertion < 6 To perform operation put(k, o), we search for key k (using TreeSearch) Assume k is not already in the tree, and let w be the leaf reached by the search We insert k at node w and expand w into an internal node Example: insert 5 2 9 > 1 4 8 > w 6 2 9 1 4 8 w 5 © 2014 Goodrich, Tamassia, Goldwasser Binary Search Trees

Deletion (one child is a leaf) 6 To perform operation remove(k), we search for key k Assume key k is in the tree, and let let v be the node storing k If node v has a leaf child w, we remove v and w from the tree with operation removeExternal(w), which removes w and its parent Example: remove 4 < 2 9 > v 1 4 8 w 5 6 2 9 1 5 8 © 2014 Goodrich, Tamassia, Goldwasser Binary Search Trees

Deletion (both children are not leaves) 1 v find the internal node w that follows v in an inorder traversal copy key(w) into node v remove node w and its left child z (which must be a leaf) by means of operation removeExternal(z) Example: remove 3 3 2 8 6 9 w 5 z 1 v 5 2 8 6 9 © 2014 Goodrich, Tamassia, Goldwasser Binary Search Trees

Deletion (both children are not leaves) 1 v find the internal node w that follows v in an inorder traversal copy key(w) into node v remove node w and its left child z (which must be a leaf) by means of operation removeExternal(z) Example: remove 3 3 2 8 Why? 6 9 w 5 z 1 v 5 2 8 6 9 © 2014 Goodrich, Tamassia, Goldwasser Binary Search Trees

Performance Consider an ordered map with n items BST of height h the space used is O(n) methods get, put and remove take O(h) time The height h is O(n) in the worst case and O(log n) in the best case © 2014 Goodrich, Tamassia, Goldwasser Binary Search Trees