AVL Treeavail

download AVL Treeavail

of 31

Transcript of AVL Treeavail

  • 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