Download presentation
Presentation is loading. Please wait.
1
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
2
Balanced Binary Search Trees
Indexed AVL trees Indexed red-black trees Indexed operations also take O(log n) time
3
Balanced Search Trees weight balanced binary search trees
AA trees B-trees BBST etc.
4
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.
5
Balance Factors -1 1 1 -1 1 -1 This is an AVL tree.
6
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).
7
AVL Search Tree 1 -1 10 7 8 3 5 30 40 20 25 35 45 60
8
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
9
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
10
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
11
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.
12
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: Insertion sequence: RR) 1, 2, 3 LL) 3, 2, 1 RL) 1, 3, 2 LR) 3, 1, 2
13
Source: https://en. wikipedia
14
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
15
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
16
Example Red Black Tree 10 7 8 1 5 30 40 20 25 35 45 60 3
17
RB Tree unbalanced cases
CLRS reduces that to 6 More details are taught in: COT5405 Analysis of Algorithms course
18
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.
19
Example Red Black Tree 10 7 8 1 5 30 40 20 25 35 45 60 3
20
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
21
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
22
Graphs Undirected edge has no orientation (u,v).
Undirected graph => no oriented edge. Directed graph => every edge has an orientation.
23
Undirected Graph 2 3 8 10 1 4 5 9 11 6 7
24
Directed Graph (Digraph)
2 3 8 10 1 4 5 9 11 6 7
25
Applications—Communication Network
2 3 8 10 1 4 5 9 11 6 7 Internet connection. Vertices are computers. Send from 1 to 7. Vertex = city, edge = communication link.
26
Driving Distance/Time Map
2 3 8 10 1 4 5 9 11 6 7 Vertex = city, edge weight = driving distance/time.
27
Street Map 2 3 8 10 1 4 5 9 11 6 7 Some streets are one way.
28
Complete Undirected Graph
Has all possible edges. n = 2 n = 4 n = 3 n = 1
29
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.
30
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).
31
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
32
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)
33
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
34
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
35
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.