balanced binary search trees

Post on 22-Jan-2016

59 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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 - PowerPoint PPT 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

• 2-3 & 2-3-4 trees

• AA trees

• B-trees

• BBST

• etc.

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

Balance Factors

0 0

0 0

1

0

-1 0

1

0

-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

0 0

0 0

1

0

-1 0

1

0

-1

1

-110

7

83

1 5

30

40

20

25

35

45

60

insert(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

insert(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)

insert(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

Insert/Put

• Following insert/put, retrace path towards root and adjust balance factors as needed.

• Stop when you reach a node whose balance factor becomes 0, 2, or –2, or when you reach the root.

• The new tree is not an AVL tree only if you reach a node whose balance factor is either 2 or –2.

• In this case, we say the tree has become unbalanced.

A-Node

• Let A be the nearest ancestor of the newly inserted node whose balance factor becomes +2 or –2 following the insert.

• Balance factor of nodes between new node and A is 0 before insertion.

Imbalance Types

• RR … newly inserted node is in the right subtree of the right subtree of A.

• LL … left subtree of left subtree of A.

• RL… left subtree of right subtree of A.

• LR… right subtree of left subtree of A.

LL Rotation

• Subtree height is unchanged.• No further adjustments to be done.

Before insertion.

1

0

A

B

BL BR

AR

h h

h

A

B

B’L BR

AR

After insertion.

h+1 h

h

B

A

After rotation.

BR

hAR

h

B’Lh+1

0

0

1

2

LR Rotation (case 1)

• Subtree height is unchanged.• No further adjustments to be done.

Before insertion.

1

0

A

B

A

B

After insertion.

C

C

A

After rotation.

B

0

-1

2

0 0

0

LR Rotation (case 2)

• Subtree height is unchanged.• No further adjustments to be done.

C

A

CR

h-1AR

h

1

0

A

B

BL

CR

AR

h

h-1

h

0

CL

h-1

C

A

B

BL

CR

AR

h

h-1

h

C’Lh

C

B

BL

hC’Lh

1

-1

2

0 -1

0

LR Rotation (case 3)

• Subtree height is unchanged.• No further adjustments to be done.

1

0

A

B

BL

CR

AR

h

h-1

h

0

CL

h-1

C

A

B

BL

C’R

AR

h

h

h

CL

h-1

C-1

-1

2 C

A

C’Rh

AR

h

B

BL

hCL

h-1

1 0

0

Single & Double Rotations

• Single– LL and RR

• Double– LR and RL– LR is RR followed by LL– RL is LL followed by RR

LR Is RR + LL

A

B

BL

C’R

AR

h

h

h

CL

h-1

C-1

-1

2

After insertion.

A

C

CL

C’R

AR

h

h

BL

h

B

2

After RR rotation.

h-1

C

A

C’Rh

AR

h

B

BL

hCL

h-1

1 0

0

After LL rotation.

Insert/Put

• Following insert/put, retrace path towards root and adjust balance factors as needed.

• Stop when you reach a node whose balance factor becomes 0, 2, or –2, or when you reach the root.

• The new tree is not an AVL tree only if you reach a node whose balance factor is either 2 or –2.

• In this case, we say the tree has become unbalanced.

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

Example Red Black Tree

10

7

8

1 5

30

40

20

25

35

45

60

3

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

• C++ STL Class map => 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).u v

• Undirected graph => no oriented edge.

• Directed graph => every edge has an orientation.

Undirected Graph

23

8101

45

911

67

Directed Graph (Digraph)

23

8101

45

911

67

Applications—Communication Network

• Vertex = city, edge = communication link.

23

8101

45

911

67

Driving Distance/Time Map

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

23

8101

45

911

67

48

6

6

7

5

24

4 53

Street Map

• Some streets are one way.

23

8101

45

911

67

Complete Undirected Graph

Has all possible edges.

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

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.

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

23

8101

45

911

67

Sum Of Vertex Degrees

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

810

911

In-Degree Of A Vertex

in-degree is number of incoming edges

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

23

8101

45

911

67

Out-Degree Of A Vertex

out-degree is number of outbound edges

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

23

8101

45

911

67

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