Balanced Binary Search Trees

Slides:



Advertisements
Similar presentations
Part II. Delete an Node from an AVL Tree Consider to delete
Advertisements

CPSC 252 AVL Trees Page 1 AVL Trees Motivation: We have seen that when data is inserted into a BST in sorted order, the BST contains only one branch (it.
AVL Tree Smt Genap Outline AVL Tree ◦ Definition ◦ Properties ◦ Operations Smt Genap
CS202 - Fundamental Structures of Computer Science II
AA Trees another alternative to AVL trees. Balanced Binary Search Trees A Binary Search Tree (BST) of N nodes is balanced if height is in O(log N) A balanced.
Chapter 6: Transform and Conquer Trees, Red-Black Trees The Design and Analysis of Algorithms.
Dynamic Dictionaries Primary Operations:  Get(key) => search  Insert(key, element) => insert  Delete(key) => delete Additional operations:  Ascend()
Red Black Trees Colored Nodes Definition Binary search tree.
Dynamic Set AVL, RB Trees G.Kamberova, Algorithms Dynamic Set ADT Balanced Trees Gerda Kamberova Department of Computer Science Hofstra University.
Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects two different vertices. Edges are.
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved Chapter 45 AVL Trees and Splay.
Balanced Binary Search Trees height is O(log n), where n is the number of elements in the tree AVL (Adelson-Velsky and Landis) trees red-black trees get,
Graph. Data Structures Linear data structures: –Array, linked list, stack, queue Non linear data structures: –Tree, binary tree, graph and digraph.
1 AVL-Trees: Motivation Recall our discussion on BSTs –The height of a BST depends on the order of insertion E.g., Insert keys 1, 2, 3, 4, 5, 6, 7 into.
GRAPHS CSE, POSTECH. Chapter 16 covers the following topics Graph terminology: vertex, edge, adjacent, incident, degree, cycle, path, connected component,
Balancing Binary Search Trees. Balanced Binary Search Trees A BST is perfectly balanced if, for every node, the difference between the number of nodes.
Balanced Binary Search Tree 황승원 Fall 2010 CSE, POSTECH.
1 Trees 4: AVL Trees Section 4.4. Motivation When building a binary search tree, what type of trees would we like? Example: 3, 5, 8, 20, 18, 13, 22 2.
CSE221/ICT221 Analysis and Design of Algorithms CSE221/ICT221 Analysis and Design of Algorithms Analysis of Algorithm using Tree Data Structure Asst.Prof.
Data Structures & Algorithms Graphs
Data Structures & Algorithms Graphs Richard Newman based on book by R. Sedgewick and slides by S. Sahni.
Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects two different vertices. Edges are.
Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.
GRAPHS. Graph Graph terminology: vertex, edge, adjacent, incident, degree, cycle, path, connected component, spanning tree Types of graphs: undirected,
© Copyright 2012 by Pearson Education, Inc. All Rights Reserved. 1 Chapter 20 AVL Trees.
Bottom-Up Red-Black Trees Top-down red-black trees require O(log n) rotations per insert/delete. Color flips cheaper than rotations. Priority search trees.
1 Red-Black Trees. 2 A Red-Black Tree with NULLs shown Black-Height of the tree = 4.
AVL Trees CSE, POSTECH.
Lecture 15 Nov 3, 2013 Height-balanced BST Recall:
AA Trees.
Lec 13 Oct 17, 2011 AVL tree – height-balanced tree Other options:
Red-Black Tree Neil Tang 02/04/2010
Red Black Trees Colored Nodes Definition Binary search tree.
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 Colored Nodes Definition Binary search tree.
CSIT 402 Data Structures II
CS202 - Fundamental Structures of Computer Science II
CS202 - Fundamental Structures of Computer Science II
AVL Trees binary tree for every node x, define its balance factor
AVL DEFINITION An AVL tree is a binary search tree in which the balance factor of every node, which is defined as the difference between the heights of.
Chapter 26 AVL Trees Jung Soo (Sue) Lim Cal State LA.
AVL Trees A BST in which, for any node, the number of levels in its two subtrees differ by at most 1 The height of an empty tree is -1. If this relationship.
Chapter 29 AVL Trees.
Balanced Trees AVL : Adelson-Velskii and Landis(1962)
Red-Black Trees 9/12/ :44 AM AVL Trees v z AVL Trees.
AVL Tree 27th Mar 2007.
AVL Trees "The voyage of discovery is not in seeking new landscapes but in having new eyes. " - Marcel Proust.
AVL Trees 11/10/2018 AVL Trees v z AVL Trees.
Red-Black Trees 11/13/2018 2:07 AM AVL Trees v z AVL Trees.
Balanced Binary Search Trees
Chapter 6 Transform and Conquer.
Red-Black Trees 11/26/2018 3:42 PM AVL Trees v z AVL Trees.
CS202 - Fundamental Structures of Computer Science II
AVL Trees CSE 373 Data Structures.
AVL Search Tree put(9)
Dynamic Dictionaries Primary Operations: Additional operations:
AVL Trees 2/23/2019 AVL Trees v z AVL Trees.
CS202 - Fundamental Structures of Computer Science II
Red-Black Trees 2/24/ :17 AM AVL Trees v z AVL Trees.
Lecture 9: Self Balancing Trees
AVL Tree By Rajanikanth B.
Graphs Chapter 7 Visit for more Learning Resources.
AVL-Trees (Part 1).
Lecture 10 Oct 1, 2012 Complete BST deletion Height-balanced BST
Red-Black Trees 5/19/2019 6:39 AM AVL Trees v z AVL Trees.
CSE 373 Data Structures Lecture 8
Graphs G = (V,E) V is the vertex set.
CS202 - Fundamental Structures of Computer Science II
Red Black Trees Colored Nodes Definition Binary search tree.
CS202 - Fundamental Structures of Computer Science II
Presentation transcript:

Balanced Binary Search Trees height is O(log n), where n is the number of elements in the tree AVL (Adelson-Velsky and Landis) trees red-black trees find, insert, and erase take O(log n) time

Balanced Binary Search Trees Indexed AVL trees Indexed red-black trees Indexed operations also take O(log n) time

Balanced Search Trees weight balanced binary search trees AA trees B-trees BBST etc.

AVL Tree A binary tree More specifically it’s a “self-balancing binary search tree” for every node x, define its balance factor: balance factor of x = height of left subtree of x - height of right subtree of x balance factor of every node x must be -1, 0, or 1 rebalancing if necessary Some define balance factor as height of right subtree – height of left subtree.

Balance Factors -1 1 1 -1 1 -1 This is an AVL tree.

Height The height of an AVL tree that has n nodes is at most 1.44 log2 (n+2). The height of every n node binary tree is at least log2 (n+1).

AVL Search Tree 1 -1 10 7 8 3 5 30 40 20 25 35 45 60

AVL Tree Find(key) Insert(key, value) Erase(key) Same as BST find, but worst-case O(logn) Insert(key, value) Same as BST insert, then check balance and rebalance if necessary Erase(key) Similar to insertion of AVL, but must continue to trace the path towards the root

insert(9) -1 10 1 1 7 40 -1 -1 1 45 3 8 30 Some balance factors on insert path change. -1 60 35 1 9 20 5 25

insert(29) -1 10 1 1 7 40 -1 1 45 3 8 30 -1 -2 60 35 1 20 5 RR imbalance => new node is in right subtree of right subtree of blue node (node with bf = -2) -1 25 29

insert(29) RR rotation. -1 10 1 1 7 40 -1 1 45 3 8 30 60 35 1 25 5 20 1 45 3 8 30 60 35 1 25 5 20 29 RR rotation.

AVL Rotations Four cases to consider, cases 1 to 4: RR (right-right)  Single rotation to left LL (left-left)  Single rotation to right RL (right-left)  Double rotation One rotation to get to case 1 Then case 1 LR (left-right)  Double rotation One rotation to get to case 2 Then case 2 Visualizations at: http://www.qmatica.com/DataStructures/Trees/AVL/AVLTree.html https://www.cs.usfca.edu/~galles/visualization/AVLtree.html Insertion sequence: RR) 1, 2, 3 LL) 3, 2, 1 RL) 1, 3, 2 LR) 3, 1, 2

Source: https://en. wikipedia

Red Black Trees Colored Nodes Definition Binary search tree. Each node is colored red or black. Root and all external nodes are black. No root-to-external-node path has two consecutive red nodes. All root-to-external-node paths have the same number of black nodes

Red Black Tree Properties Remember these 4 important properties: Every node is either red or black The root and external nodes are black If a node is red, then its parent is black All simple paths from any node x to a descendent leaf have the same number of black nodes = black-height(x) Source: CLRS 3rd edition

Example Red Black Tree 10 7 8 1 5 30 40 20 25 35 45 60 3

RB Tree unbalanced cases CLRS reduces that to 6 More details are taught in: COT5405 Analysis of Algorithms course

Red Black Trees Colored Edges Definition Binary search tree. Child pointers are colored red or black. Pointer to an external node is black. No root to external node path has two consecutive red pointers. Every root to external node path has the same number of black pointers.

Example Red Black Tree 10 7 8 1 5 30 40 20 25 35 45 60 3

Red Black Tree The height of a red black tree that has n (internal) nodes is between log2(n+1) and 2log2(n+1). RB vs AVL: AVL may require more rotations in insert/delete RB may have higher height C++ STL Class map => red black tree Java standard library TreeMap => red-black tree

Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects two different vertices. Edges are also called arcs and lines. Directed edge has an orientation (u,v). u v

Graphs Undirected edge has no orientation (u,v). Undirected graph => no oriented edge. Directed graph => every edge has an orientation.

Undirected Graph 2 3 8 10 1 4 5 9 11 6 7

Directed Graph (Digraph) 2 3 8 10 1 4 5 9 11 6 7

Applications—Communication Network 2 3 8 10 1 4 5 9 11 6 7 Internet connection. Vertices are computers. Send email from 1 to 7. Vertex = city, edge = communication link.

Driving Distance/Time Map 2 3 8 10 1 4 5 9 11 6 7 Vertex = city, edge weight = driving distance/time.

Street Map 2 3 8 10 1 4 5 9 11 6 7 Some streets are one way.

Complete Undirected Graph Has all possible edges. n = 2 n = 4 n = 3 n = 1

Number Of Edges—Undirected Graph Each edge is of the form (u,v), u != v. Number of such pairs in an n vertex graph is n(n-1). Since edge (u,v) is the same as edge (v,u), the number of edges in a complete undirected graph is n(n-1)/2. Number of edges in an undirected graph is <= n(n-1)/2.

Number Of Edges—Directed Graph Each edge is of the form (u,v), u != v. Number of such pairs in an n vertex graph is n(n-1). Since edge (u,v) is not the same as edge (v,u), the number of edges in a complete directed graph is n(n-1). Number of edges in a directed graph is <= n(n-1).

Vertex Degree Number of edges incident to vertex. 2 3 8 10 1 4 5 9 11 6 7 Number of edges incident to vertex. degree(2) = 2, degree(5) = 3, degree(3) = 1

Sum Of Vertex Degrees Sum of degrees = 2e (e is number of edges) 8 10 9 11 Sum of degrees = 2e (e is number of edges)

In-Degree Of A Vertex in-degree is number of incoming edges 2 3 8 10 1 4 5 9 11 6 7 in-degree is number of incoming edges indegree(2) = 1, indegree(8) = 0

Out-Degree Of A Vertex out-degree is number of outbound edges 2 3 8 10 1 4 5 9 11 6 7 out-degree is number of outbound edges outdegree(2) = 1, outdegree(8) = 2

Sum Of In- And Out-Degrees each edge contributes 1 to the in-degree of some vertex and 1 to the out-degree of some other vertex sum of in-degrees = sum of out-degrees = e, where e is the number of edges in the digraph