balanced binary search trees height is o(log n), where n is the number of elements in the tree avl...

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

Upload: phillip-jackson

Post on 22-Dec-2015

220 views

Category:

Documents


2 download

TRANSCRIPT

Page 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 get,

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

Page 2: 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,

Balanced Binary Search Trees

• Indexed AVL trees

• Indexed red-black trees

• Indexed operations also take

O(log n) time

Page 3: 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,

Balanced Search Trees

• weight balanced binary search trees

• 2-3 & 2-3-4 trees

• AA trees

• B-trees

• BBST

• etc.

Page 4: 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,

AVL Tree

• binary tree

• for every node x, define its balance factorbalance factor of x = height of left subtree of x

- height of right subtree of x

• balance factor of every node x is -1, 0, or 1

Page 5: 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,

Balance Factors

0 0

0 0

1

0

-1 0

1

0

-1

1

-1

This is an AVL tree.

Page 6: 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,

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).

Page 7: 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,

AVL Search Tree

0 0

0 0

1

0

-1 0

1

0

-1

1

-110

7

83

1 5

30

40

20

25

35

45

60

Page 8: 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(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

Page 9: 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(29)

0 0

0 0

1

0

0

1

0

-1

1

-110

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)

Page 10: 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(29)

0 0

0 0

1

0

0

1

0

-1

1

-110

7

83

1 5

30

40

2535

45

600

RR rotation. 20

029

Page 11: 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,

AVL Rotations

• RR

• LL

• RL

• LR

Page 12: 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,

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

Page 13: 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,

Example Red Black Tree

10

7

8

1 5

30

40

20

25

35

45

60

3

Page 14: 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,

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.

Page 15: 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,

Example Red Black Tree

10

7

8

1 5

30

40

20

25

35

45

60

3

Page 16: 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,

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

Page 17: 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,

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

Page 18: 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,

Graphs

• Undirected edge has no orientation (u,v).u v

• Undirected graph => no oriented edge.

• Directed graph => every edge has an orientation.

Page 19: 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,

Undirected Graph

23

8101

45

911

67

Page 20: 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,

Directed Graph (Digraph)

23

8101

45

911

67

Page 21: 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,

Applications—Communication Network

• Vertex = city, edge = communication link.

23

8101

45

911

67

Page 22: 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,

Driving Distance/Time Map

• Vertex = city, edge weight = driving distance/time.

23

8101

45

911

67

48

6

6

7

5

24

4 53

Page 23: 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,

Street Map

• Some streets are one way.

23

8101

45

911

67

Page 24: 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,

Complete Undirected Graph

Has all possible edges.

n = 1 n = 2 n = 3 n = 4

Page 25: 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,

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.

Page 26: 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,

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).

Page 27: 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,

Vertex Degree

Number of edges incident to vertex.

degree(2) = 2, degree(5) = 3, degree(3) = 1

23

8101

45

911

67

Page 28: 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,

Sum Of Vertex Degrees

Sum of degrees = 2e (e is number of edges)

810

911

Page 29: 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,

In-Degree Of A Vertex

in-degree is number of incoming edges

indegree(2) = 1, indegree(8) = 0

23

8101

45

911

67

Page 30: 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,

Out-Degree Of A Vertex

out-degree is number of outbound edges

outdegree(2) = 1, outdegree(8) = 2

23

8101

45

911

67

Page 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,

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