7/30/2019 AVL Treeavail
1/31
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, put, and remove take O(log n)
time
7/30/2019 AVL Treeavail
2/31
Balanced Binary Search Trees
Indexed AVL trees
Indexed red-black trees
Indexed operations alsotake
O(log n) time
7/30/2019 AVL Treeavail
3/31
Balanced Search Trees
weight balanced binary search trees
2-3 & 2-3-4 trees
AA trees
B-trees
BBST
etc.
7/30/2019 AVL Treeavail
4/31
AVL Tree
binary 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 is -1, 0, or1
7/30/2019 AVL Treeavail
5/31
Balance Factors
0 0
0 0
1
0
-1 0
1
0
-1
1
-1
This is an AVL tree.
7/30/2019 AVL Treeavail
6/31
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/30/2019 AVL Treeavail
7/31
AVL Search Tree
0 0
0 0
1
0
-1 0
1
0
-1
1
-1
10
7
83
1 5
30
40
20
25
35
45
60
7/30/2019 AVL Treeavail
8/31
put(9)
0 0
0 0
1
0
-1 0
1
0
-1
1
-1
90
-1
0
10
7
83
1 5
30
40
20
25
35
45
60
7/30/2019 AVL Treeavail
9/31
put(29)
0 0
0 0
1
0
0
1
0
-1
1
-1
10
7
83
1 5
30
40
20
25
35
45
60
29
0
-1
-1-2
RR imbalance => new node is in
right subtree of right subtree of
blue node (node with bf= -2)
7/30/2019 AVL Treeavail
10/31
put(29)
0 0
0 0
1
0
0
1
0
-1
1
-1
10
7
83
1 5
30
40
2535
45
600
RR rotation.
20
0
29
7/30/2019 AVL Treeavail
11/31
AVL Rotations
RR
LL
RL
LR
7/30/2019 AVL Treeavail
12/31
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
7/30/2019 AVL Treeavail
13/31
Example Red Black Tree
10
7
8
1 5
30
40
20
25
35
45
60
3
7/30/2019 AVL Treeavail
14/31
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 twoconsecutive red pointers.
Every root to external node path has the
same number of black pointers.
7/30/2019 AVL Treeavail
15/31
Example Red Black Tree
10
7
8
1 5
30
40
20
25
35
45
60
3
7/30/2019 AVL Treeavail
16/31
Red Black Tree
The height of a red black tree that has n
(internal) nodes is between log2(n+1) and
2log2(n+1). java.util.TreeMap => red black tree
7/30/2019 AVL Treeavail
17/31
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
7/30/2019 AVL Treeavail
18/31
Graphs
Undirected edge has no orientation (u,v).u v
Undirected graph => no oriented edge.
Directed graph => every edge has an
orientation.
7/30/2019 AVL Treeavail
19/31
Undirected Graph
23
8
101
45
911
67
7/30/2019 AVL Treeavail
20/31
Directed Graph (Digraph)
23
8
101
45
911
67
7/30/2019 AVL Treeavail
21/31
ApplicationsCommunication Network
Vertex = city, edge = communication link.
23
8
101
45
911
67
7/30/2019 AVL Treeavail
22/31
Driving Distance/Time Map
Vertex = city, edge weight = driving
distance/time.
23
8
101
45
911
67
4
8
6
6
7
5
24
4 53
7/30/2019 AVL Treeavail
23/31
Street Map
Some streets are one way.
23
8
101
45
911
67
7/30/2019 AVL Treeavail
24/31
Complete Undirected Graph
Has all possible edges.
n = 1 n = 2 n = 3 n = 4
7/30/2019 AVL Treeavail
25/31
Number Of EdgesUndirected 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
7/30/2019 AVL Treeavail
26/31
Number Of EdgesDirected 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
7/30/2019 AVL Treeavail
27/31
Vertex Degree
Number of edges incident to vertex.
degree(2) = 2, degree(5) = 3, degree(3) = 1
23
8
101
45
911
67
7/30/2019 AVL Treeavail
28/31
Sum Of Vertex Degrees
Sum of degrees = 2e (e is number of edges)
8
10
911
7/30/2019 AVL Treeavail
29/31
In-Degree Of A Vertex
in-degree is number of incoming edges
indegree(2) = 1, indegree(8) = 0
23
8
101
45
911
67
7/30/2019 AVL Treeavail
30/31
Out-Degree Of A Vertex
out-degree is number of outbound edges
outdegree(2) = 1, outdegree(8) = 2
23
8
101
45
911
67
7/30/2019 AVL Treeavail
31/31
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
Top Related