1 / 31

Balanced Binary Search Trees

Learn about the benefits and operations of AVL and Red-Black trees in implementing efficient balanced search trees. AVL rotations and Red-Black tree features are also explained.

rhassell
Télécharger la présentation

Balanced Binary Search Trees

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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, put, and remove take O(log n) time

  2. Balanced Binary Search Trees Indexed AVL trees Indexed red-black trees Indexed operations alsotake O(log n) time

  3. Balanced Search Trees weight balanced binary search trees 2-3 & 2-3-4 trees AA trees B-trees BBST etc.

  4. 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, or 1

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

  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. -1 10 1 1 7 40 -1 0 1 0 45 3 8 30 0 -1 0 0 0 60 35 1 20 5 0 25 AVL Search Tree

  8. put(9) -1 10 0 1 1 7 40 -1 0 1 -1 0 45 3 8 30 0 -1 0 0 0 0 60 35 1 9 20 5 0 25

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

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

  11. AVL Rotations • RR • LL • RL • LR

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

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

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

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

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

  17. u • v 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).

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

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

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

  21. 2 3 8 1 10 4 5 9 11 6 7 Applications—Communication Network • Vertex = city, edge = communication link.

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

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

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

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

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

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

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

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

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

  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

More Related