データ構造とアルゴリズム avl木...

Download データ構造とアルゴリズム AVL木 (平衡探索木)dopal.cs.uec.ac.jp/okamotoy/lect/2005/DSA/avl.pdf · データ構造とアルゴリズム avl木(平衡探索木) 岡本吉央

If you can't read please download the document

Upload: hoanghanh

Post on 06-Feb-2018

222 views

Category:

Documents


3 download

TRANSCRIPT

  • AVL ()

    2005 10 3

    AVL

  • 2 = O(n) = O(log n)AVLO(log n) 2

    AVL

  • (balanced search tree)

    O(log n)

    AVL (2)2-3B

    AVL

  • AVL

    AAVL (AVL-tree)

    2 1

    AVL

  • AVL 1

    AVL?

    1

    2

    3

    4

    AVL

  • AVL 1

    AVL?

    1

    2

    3

    4

    AVL

  • AVL 2

    AVL?

    1 5 7 9 11 13

    6 10 14

    4 12

    8

    2

    3 15

    AVL

  • AVL 2

    AVL?

    1 5 7 9 11 13

    6 10 14

    4 12

    8

    2

    3 15

    AVL

  • AVL 3

    AVL?

    8

    32 6

    5

    4 71

    141512

    1310

    119

    16

    AVL

  • AVL 3

    AVL?

    8

    32 6

    5

    4 71

    141512

    1310

    119

    16

    AVL

  • AVL 4

    AVL? ()

    5

    2

    1 4

    3

    6 9

    7

    8

    10

    11

    12

    AVL

  • AVL 4

    AVL? ()

    5

    2

    1 4

    3

    6 9

    7

    8

    10

    11

    12

    AVL

  • AVL 5

    AVL?

    1 9 11

    10

    12

    8

    2

    3 15

    4

    5

    6

    7

    14

    13

    AVL

  • AVL 5

    AVL?

    1 9 11

    10

    12

    8

    2

    3 15

    4

    5

    6

    7

    14

    13

    AVL

  • AVL 5

    AVL? (13)

    1 9 11

    10

    12

    8

    2

    3 15

    4

    5

    6

    7

    14

    13

    AVL

  • AVL

    AVLAVL

    8

    32 6

    5

    4 71

    141512

    1310

    119

    16

    AVL

  • AVL

    AVLAVL

    8

    32 6

    5

    4 71

    141512

    1310

    119

    16

    AVL

  • AVL

    AVLO(log n)

    f (h) = hAVL

    h 2

    f (h) = 1 + f (h 1) + f (h 2)

    (f (0) = 1, f (1) = 2)

    AVL

  • AVL

    AVLO(log n)

    f (h) = hAVL

    h 2

    f (h) = 1 + f (h 1) + f (h 2)

    (f (0) = 1, f (1) = 2)

    AVL

  • AVL

    AVLO(log n)

    f (h) = hAVL

    h 2

    f (h) = 1 + f (h 1) + f (h 2)

    (f (0) = 1, f (1) = 2)

    AVL

  • AVL ()

    f (h) =15

    (

    1 +

    5

    2

    )h+3

    (

    1

    5

    2

    )h+3

    1

    f (h) n

    h = O(log n)

    []

    AVL

  • AVL ()

    f (h) =15

    (

    1 +

    5

    2

    )h+3

    (

    1

    5

    2

    )h+3

    1

    f (h) n

    h = O(log n)

    []

    AVL

  • AVL ()

    f (h) =15

    (

    1 +

    5

    2

    )h+3

    (

    1

    5

    2

    )h+3

    1

    f (h) n

    h = O(log n)

    []

    AVL

  • AVL

    Member, Min2InsertDelete2

    AVL

  • AVL

    Member, Min2InsertDelete2

    AVL

  • AVL

    Member, Min2InsertDelete2

    AVL

  • AVL

    Member, Min2InsertDelete2

    AVL

  • y s(y)

    s(y) =

    L > E = R <

    L

    ER

    E

    E

    L

    RE

    L

    L

    R

    EEE

    E E

    8

    32 6

    5

    4 71

    141512

    1310

    119

    16

    AVL

  • y s(y)

    s(y) =

    L > E = R <

    E E

    E

    E

    E EE E

    E

    LL L

    LR

    R

    R

    1

    23

    4

    6

    7

    5

    8

    1214

    15

    1310

    9 11

    16

    AVL

  • u (single right rotation)

    u

    vu

    v

    AVL

  • v (single left rotation)

    u

    v

    u

    v

    AVL

  • u (double left rotation)

    u

    w

    v

    w

    v

    u

    AVL

  • v (double right rotation)

    u

    w

    v

    w

    u

    v

    AVL

  • 1

    E E

    E

    E

    E EE

    E

    LL L

    LR

    R

    R

    E

    E16

    1

    23

    4

    6

    7

    5

    8

    1214

    15

    1310

    9 11

    16

    17

    AVL

  • 1

    E E

    E

    E

    E EE

    E

    LL L

    LR

    R

    R

    E

    E17

    1

    23

    4

    6

    7

    5

    8

    1214

    15

    1310

    9 11

    16

    17

    AVL

  • 1

    E E

    E

    E

    E EE

    E

    LL L

    LR

    R

    R

    E

    E17

    1

    23

    4

    6

    7

    5

    8

    1214

    15

    1310

    9 11

    16

    1717E ()

    AVL

  • 1

    E E

    E

    E

    E EE

    E

    LL L

    LR

    R

    R

    E

    E17

    1

    23

    4

    6

    7

    5

    8

    1214

    15

    1310

    9 11

    16

    17

    AVL

  • 1

    E E

    E

    E

    E EE

    E

    LL L

    LR

    R

    R

    E

    E17

    1

    23

    4

    6

    7

    5

    8

    1214

    15

    1310

    9 11

    16

    16 116E 16R

    AVL

  • 1

    E E

    E

    E

    E EE

    E

    LL L

    LR

    R

    R

    R

    E17

    1

    23

    4

    6

    7

    5

    8

    1214

    15

    1310

    9 11

    16

    16 116E 16R

    AVL

  • 1

    E E

    E

    E

    E EE

    E

    LL L

    LR

    R

    R

    R

    E17

    1

    23

    4

    6

    7

    5

    8

    1214

    15

    1310

    9 11

    16

    15 115R 15

    AVL

  • 1

    E E

    E

    E

    E EE

    E

    LL L

    LR

    R E

    E

    E171

    23

    4

    6

    7

    5

    8

    1214

    1310

    9 11

    15

    16

    16R 1514

    AVL

  • 2

    E E

    E

    E

    E EE E

    E

    LL L

    LR

    R

    R

    1

    23

    4

    6

    7

    5

    8

    1214

    15

    1310

    9 11

    16

    16

    AVL

  • 2

    E E

    E

    E

    E EE

    E

    LL L

    LR

    R

    R

    E1

    23

    4

    6

    7

    5

    8

    1214

    15

    1310

    9 11

    16

    16

    AVL

  • 2

    E E

    E

    E

    E EE

    E

    LL L

    LR

    R

    R

    E1

    23

    4

    6

    7

    5

    8

    1214

    15

    1310

    9 11

    16

    16 15

    AVL

  • 2

    E E

    E

    E

    E EE

    E

    LL L

    LR

    R

    R

    E1

    23

    4

    6

    7

    5

    8

    1214

    15

    1310

    9 11

    16

    15 115R 15E

    AVL

  • 2

    E E

    E

    E

    E EE

    E

    LL L

    LR

    R

    E

    E1

    23

    4

    6

    7

    5

    8

    1214

    15

    1310

    9 11

    16

    15 115R 15E

    AVL

  • 2

    E E

    E

    E

    E EE

    E

    LL L

    LR

    R

    E

    E1

    23

    4

    6

    7

    5

    8

    1214

    15

    1310

    9 11

    16

    14 114 L 14

    AVL

  • 2

    E E

    E

    E

    E EE

    E

    LL L

    LR

    R

    E

    E1

    23

    4

    6

    7

    5

    8

    1214

    15

    1310

    9 11

    16

    15E 14

    AVL

  • 2

    E

    E

    E

    E

    LL

    R

    R

    E

    EEEE

    E

    EE

    1

    23

    4

    6

    7

    5

    8

    1412

    10

    9 11 1513

    15E 14

    AVL

  • 2

    E

    E

    E

    E

    LL

    R

    R

    E

    EEEE

    E

    EE

    1

    23

    4

    6

    7

    5

    8

    1412

    10

    9 11 1513

    18E 8 L

    AVL

  • 2

    E

    E

    E

    L

    LL

    R

    R

    E

    EEEE

    E

    EE

    1

    23

    4

    6

    7

    5

    8

    1412

    10

    9 11 1513

    18E 8 L

    AVL

  • 2

    E

    E

    E

    L

    LL

    R

    R

    E

    EEEE

    E

    EE

    1

    23

    4

    6

    7

    5

    8

    1412

    10

    9 11 1513

    8

    AVL

  • InsertDelete

    ()

    AVL

  • InsertDelete

    ()

    AVL

  • E

    1. v( 1)

    1-1. v Lv vE

    1-2. vEv vR

    1-3. vRv

    AVL

  • E

    1. v( 1)

    1-1. v Lv vE

    1-2. vEv vR

    1-3. vRv

    AVL

  • E

    1. v( 1)

    1-1. v Lv vE

    1-2. vEv vR

    1-3. vRv

    AVL

  • E

    1. v( 1)

    1-1. v Lv vE

    1-2. vEv vR

    1-3. vRv

    AVL

  • ()

    1-3. vR1-3-1. v uR

    v

    vu

    v R

    R

    uE

    E

    AVL

  • ()

    1-3. vR1-3-2. v u L

    v

    v

    u v

    w

    u

    R

    L

    R

    L

    w E

    E

    AVL

  • ()

    1-3. vR1-3-2. v u L

    v

    v

    u v

    w

    u

    R

    L

    L

    L

    w E

    R

    AVL

  • ()

    E

    2. v( 1)

    2-1. vRv vE

    2-2. vEv v L

    2-3. v Lv

    AVL

  • ()

    E

    2. v( 1)

    2-1. vRv vE

    2-2. vEv v L

    2-3. v Lv

    AVL

  • ()

    E

    2. v( 1)

    2-1. vRv vE

    2-2. vEv v L

    2-3. v Lv

    AVL

  • ()

    E

    2. v( 1)

    2-1. vRv vE

    2-2. vEv v L

    2-3. v Lv

    AVL

  • ()

    2-3. v L2-3-1. v u L

    v

    v

    vu

    L

    L

    u

    E

    E

    AVL

  • ()

    2-3. v L2-3-2. v uR

    v

    wv

    u u v

    wL

    L

    R E

    E

    R

    AVL

  • ()

    2-3. v L2-3-2. v uR

    v

    wv

    u u v

    wR

    L

    R L

    E

    E

    AVL

  • 1. v( 1)

    1-1. v LvE

    1-2. vEvR

    1-3. vRv

    AVL

  • 1. v( 1)

    1-1. v LvE

    1-2. vEvR

    1-3. vRv

    AVL

  • 1. v( 1)

    1-1. v LvE

    1-2. vEvR

    1-3. vRv

    AVL

  • 1. v( 1)

    1-1. v LvE

    1-2. vEvR

    1-3. vRv

    AVL

  • ()

    1-3. vR1-3-1. v uE

    v

    vu

    v R

    E

    u

    L

    R

    AVL

  • ()

    1-3. vR1-3-2. v uR

    v

    vu

    v R

    R

    uE

    E

    AVL

  • ()

    1-3. vR1-3-3. v u L

    v

    v

    u v

    w

    u

    R

    L

    L

    E

    w E

    R

    AVL

  • ()

    1-3. vR1-3-3. v u L

    v

    v

    u v

    w

    u

    R

    L

    E

    w E

    E

    E

    AVL

  • ()

    1-3. vR1-3-3. v u L

    v

    v

    u v

    w

    u

    R

    L

    L

    w E

    E

    R

    AVL

  • 2. v( 1)

    2-1. vRvE

    2-2. vEv L

    2-3. v Lv

    AVL

  • 2. v( 1)

    2-1. vRvE

    2-2. vEv L

    2-3. v Lv

    AVL

  • 2. v( 1)

    2-1. vRvE

    2-2. vEv L

    2-3. v Lv

    AVL

  • 2. v( 1)

    2-1. vRvE

    2-2. vEv L

    2-3. v Lv

    AVL

  • ()

    2-3. v L2-3-1. v uE

    v

    v

    vu

    L

    E

    u

    L

    R

    AVL

  • ()

    2-3. v L2-3-2. v u L

    v

    v

    vu

    L

    L

    u

    E

    E

    AVL

  • ()

    2-3. v L2-3-3. v uR

    v

    wv

    u u v

    wL

    L

    R E

    E

    R

    AVL

  • ()

    2-3. v L2-3-3. v uR

    v

    wv

    u u v

    wE

    L

    R E

    E

    E

    AVL

  • ()

    2-3. v L2-3-3. v uR

    v

    wv

    u u v

    wR

    L

    R L

    E

    E

    AVL

  • AVL

    MemberMin2O() = O(log n)InsertDeleteO() = O(log n)O() O() = O(log n)

    AVL

  • AVL

    MemberMin2O() = O(log n)InsertDeleteO() = O(log n)O() O() = O(log n)

    AVL

  • AVLAVL = (log n)()

    AVL

  • AVLAVL = (log n)()

    AVL

  • AVLAVL = (log n)()

    AVL

  • AVLAVL = (log n)()

    AVL

  • AVLAVL = (log n)()

    AVL

  • (1)

    {1, 2, 3, 4} 2

    2?AVL?AVL? 2AVLAVL?

    AVL

  • (2)

    22

    AVL

  • (3)

    1-3 2-3wE?

    AVL

  • (4)

    AVL (A)(F)AVL?

    2

    31

    05

    8

    7

    9

    (A) 6 (B) 1 (C) 4(D) 3 (E) 8 (F) 1

    AVL

  • (5)

    AB x

    a A b Ba < x < bAAVLBAVL hA, hBA {x} BAVL

    O(1 + |hA hB |)?(hA hB)

    AVL