bai 2 - advanced data structures

Upload: mo125

Post on 30-May-2018

237 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/9/2019 Bai 2 - Advanced Data Structures

    1/33

    1

    Data Structures & Algorithms

    Cc cu trc d liu nng cao

    (Advanced data structures)

    Nguyn Tri Tun

    Khoa CNTT H.KHTN.Tp.HCMEmail: nttuan@ fit.hcmuns.edu.vn

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tri Tuan, DH.KHTN Tp.HCM 2

    Advanced data structures

    Review

    Gii thiu

    Cy en (Red Black Tree)

    AA Tree

  • 8/9/2019 Bai 2 - Advanced Data Structures

    2/33

    2

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tri Tuan, DH.KHTN Tp.HCM 3

    Review

    cao ca cy nh phn tm kim (BST) cnbng c N nodes l O(log2N)

    Cy cn bng c chi ph thp

    C nhiu cch xy dng cy nh phn tm kimcn bng:

    AVL tree

    Red-Black tree

    AA tree

    Splay tree

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tri Tuan, DH.KHTN Tp.HCM 4

    Gii thiu

    Cc thut ng thng dng:

    BST

    AVL tree

    Red Black tree

    AA tree

    Splay tree / Top-down splay tree

  • 8/9/2019 Bai 2 - Advanced Data Structures

    3/33

    3

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tri Tuan, DH.KHTN Tp.HCM 5

    Advanced data structures

    Review

    Gii thiu

    Cy en (Red Black Tree)

    AA Tree

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tri Tuan, DH.KHTN Tp.HCM 6

    Red Black Tree

    nh ngha

    Cu trc lu tr

    Cc tnh cht

    Cc thao tc c bn

    nh gi

  • 8/9/2019 Bai 2 - Advanced Data Structures

    4/33

    4

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tri Tuan, DH.KHTN Tp.HCM 7

    Red Black Tree (tt)

    nh ngha: Red-Black tree l mt cy nh phntm kim (BST) tun th cc quy tc sau:

    [1] Mi node phi l hoc en

    [2] Node gc l en

    [3] Cc node ngoi (external node; NULL node) mcnh l nhng node en

    [4] Nu mt node l , nhng node con ca n phil en

    [5] Mi ng dn t gc n node ngoi phi c

    cng s lng node en

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tri Tuan, DH.KHTN Tp.HCM 8

    Red Black Tree (tt)

    Minh ha Red-Black tree

    H = 4

    Hb = 2

    H = 3

    Hb = 2

    H = 2

    Hb = 1

    H = 1

    Hb = 1

    H = 1

    Hb = 1

    H = 3

    Hb = 2

    H = 2

    Hb = 1

  • 8/9/2019 Bai 2 - Advanced Data Structures

    5/33

    5

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tri Tuan, DH.KHTN Tp.HCM 9

    Red Black Tree (tt)

    Chiu cao en (black height hb(x)): l s nodeen trn ng i t node xn node ngoi(khng bao gm x)

    T quy tc [4]khng th tn ti node cha vnode con cng . Khi cy en vi phm quitc ny gi l hin tng xung t -

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 10

    Red Black Tree (tt)

    Cu trc lu tr:Thng tin lu tr ti Node (key)

    a chnode gc ca cy con bn tri (* pLeft)

    a chnode gc ca cy con bn phi (* pRight)

    a chca node cha (* pParent)

    Thuc tnh mu ca node (color)

  • 8/9/2019 Bai 2 - Advanced Data Structures

    6/33

    6

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 11

    Red Black Tree (tt)

    typedef enum {BLACK, RED} NodeColor;

    typedef int DataType; // Kiu d liu

    typedef struct NodeTag {

    DataType key; // D liu NodeColor color; // Mu ca node

    struct NodeTag *pLeft;

    struct NodeTag *pRight;

    struct NodeTag *pParent; // d ci t} RBNode;

    typedef struct RBNode* RBTREE;

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 12

    Red Black Tree (tt)

    Cc tnh cht:Tnh cht 1:

    h: chiu cao ca cy

    hb: chiu cao en

    h

  • 8/9/2019 Bai 2 - Advanced Data Structures

    7/33

    7

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 13

    Red Black Tree (tt)

    Cc thao tc c bn:

    Tm kim & duyt cy: ging BST. Do cy Red-Blackcn bng nn chi ph duyt cy tt hn BST

    Thm node mi (insert node)

    Xa node (delete node)

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 14

    Red Black Tree (tt)

    Insert node:

    Thc hin ging nh cy BST

    Node mi thm lun lun c mu

    Nu xy ra vi phm qui tciu chnh cy

    Demo chng trnh

  • 8/9/2019 Bai 2 - Advanced Data Structures

    8/33

    8

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 15

    Red Black Tree (tt)

    Insert node: (tt) nhng qui tc c th b vi phm

    Mi node phi l hoc en OK

    Node gc l en not OK ! Nu node mi l root

    Cc node ngoi (NULL) phi lun lun en OK

    Nu mt node l , nhng node con ca n phi l en notOK ! v c th parent[z] = RED 2 node lin tip mu

    Mi ng dn t gc n nt l phi c cng s lng nodeen OK v khng lm thay i s node en

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 16

    Red Black Tree (tt)

    RB_Insert_Node(T, z) // T: cy; z: node mi

    y NULL; x root[T];

    while x NULL { // i n nt l

    y x // y: node cha ca x

    if (key[z] < key[x]) x left[x];

    else x right[x];

    }

    parent[z] y; // thm node z vo cy

    if (y == NULL) root[T] z; // l con ca node y

    else if (key[z] < key[y]) left[y] z;

    else right[y] z;

    left[z] NULL

    right[z] NULL

    color[z] RED // node m i z c mu

    RB_Insert_FixUp(T, z) // iu chnh cy

  • 8/9/2019 Bai 2 - Advanced Data Structures

    9/33

    9

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 17

    Red Black Tree (tt)

    Cch thc iu chnh cyPhp o mu

    Php xoay tri (Left-Rotation)

    Php xoay phi (Right-Rotation)

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 18

    Red Black Tree (tt)

    Php o mu

    color[parent[z]] black

    color[y] black

    color[parent[parent[z]]] red

    z = parent[parent[z]]

    z

    z

    y

  • 8/9/2019 Bai 2 - Advanced Data Structures

    10/33

    10

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 19

    Red Black Tree (tt)

    Php xoay tri (Left-Rotation):

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 20

    Red Black Tree (tt)

    V d php xoay tri

  • 8/9/2019 Bai 2 - Advanced Data Structures

    11/33

    11

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 21

    Red Black Tree (tt)

    RB_Left_Rotate(T, x)

    y right[x];

    right[x] left[y];

    if (left[y] NULL) parent[left[y]] x;

    parent[y] parent[x];

    if (parent[x] == NULL) root[T] y;

    else if (x == left[parent[x]])

    left[parent[x]] y;

    else right[parent[x]] y;

    left[y]x;

    parent[x] y;

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 22

    Red Black Tree (tt)

    Php xoay phi (Right-Rotation):

    RB_Right_Rotate(T, x): tng t hmxoay tri (t vit)

  • 8/9/2019 Bai 2 - Advanced Data Structures

    12/33

    12

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 23

    Red Black Tree (tt)

    Tng kt: c 6 trng hp x l chi titTrng hp 1: p dng php o mu

    color[parent[z]] black

    color[y] black

    color[parent[parent[z]]] red

    z = parent[parent[z]]

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 24

    Red Black Tree (tt)

    Tng kt: (tt)Trng hp 2: p dng php o mu v xoay phi

    color[parent[z]] blackcolor[parent[parent[z]]] red

    RIGHT-ROTATE(T, parent[parent[z]])

  • 8/9/2019 Bai 2 - Advanced Data Structures

    13/33

    13

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 25

    Red Black Tree (tt)

    Tng kt: (tt)Trng hp 3: p dng xoay tri a v dng 2

    Case 3 Case 2

    z parent[z]LEFT-ROTATE(T, z)

    X l nh trng hp 2

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 26

    Red Black Tree (tt)

    11Thm 4

    2 14

    1 157

    85

    4

    y

    z

    11

    2 14

    1 157

    85

    4

    z

    Case 1

    y

    Case 3

    11

    2

    14

    1

    15

    7

    8

    5

    4

    z

    y Case 2

    112

    141

    15

    7

    85

    4

    z

  • 8/9/2019 Bai 2 - Advanced Data Structures

    14/33

    14

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 27

    Red Black Tree (tt)

    Tng kt: (tt)3 trng hp tng t [1], [2], [3] i xng vi [1],[2], [3] qua trc Y

    Case [1]

    Case [2]

    Case [3]

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 28

    Red Black Tree (tt)

    RB_Insert_FixUp(T, z)

    while (color[parent[z]] == RED) {

    // trng hp [1], [2], [3]

    if (parent[z] == left[parent[parent[z]]]) {

    y right[parent[parent[z]]];

    if (color[y] == RED) Case 1;

    else {

    if (z == right[parent[z]]) Case 3;

    Case 2;

    }}

    else // trng hp [1], [2], [3]

    color[root[T]] BLACK

  • 8/9/2019 Bai 2 - Advanced Data Structures

    15/33

    15

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 29

    Red Black Tree (tt)

    nh gi thao tc Insert node:

    Chi ph thm phn t mi (z): O(log2N)

    Chi ph ca RB_Insert_FixUp: O(log2N)

    Chi ph tng cng: O(log2N)

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 30

    Red Black Tree (tt)

    Delete node:Cch thc xa 1 node: ging nh BSTDemo chng trnhNu node b xo c mu : khng gy ra vi phm

    Mi node phi l hoc en OK

    Node gc l en OK

    Cc node l (NULL) phi lun lun en OK

    Nu mt node l , nhng node con ca n phi l enOK v khng to ra 2 node lin tip mu

    Mi ng dn t gc n nt l phi c cng s lngnode en OK v khng lm thay i s node en

  • 8/9/2019 Bai 2 - Advanced Data Structures

    16/33

    16

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 31

    Red Black Tree (tt)

    Delete node: (tt)Nu node b xo c mu en: c th gy ra vi phm

    Mi node phi l hoc en OK

    Node gc l en not OK ! V c th xa root v thay bng node

    Cc node l (NULL) phi lun lun en OK

    Nu mt node l , nhng node con ca n phi l en not OK! V c th to ra 2 node lin tip mu

    Mi ng dn t gc n nt l phi c cng s lng node en not OK ! V lm gim i s node en

    Xem chi tit Data structure & Analysis in C, p. 465

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 32

    Red Black Tree (tt)

    nh gi:u im:

    Chi ph tm kim O(log2N)

    Insert O(log2N)

    Delete O(log2N)

    Minimum O(log2N)

    Maximum O(log2N)

    Hn ch:

    Phi lu tr thuc tnh mu (color) v con trn nt cha(pParent)

    Chi ph chn v xa cao hn BST v phi thc hin i muv php quay

  • 8/9/2019 Bai 2 - Advanced Data Structures

    17/33

    17

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 33

    Advanced data structures

    Review

    Gii thiu

    Cy en (Red Black Tree)

    AA Tree

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 34

    AA (Arne Andersson) Tree

    Minh ha

    Cc khi nim

    nh ngha

    Cu trc lu tr

    Cc thao tc c bn

    nh gi

  • 8/9/2019 Bai 2 - Advanced Data Structures

    18/33

    18

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 35

    AA Tree (tt)

    Minh ha cu trc cy AA

    30 70

    85

    5

    60

    8010

    90

    15

    20

    50

    35 40 6555

    Lin kt

    ngang

    Lin kt

    con tri

    Lin kt

    con phi

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 36

    AA Tree (tt)

    Cc khi nim:

    Mc (Level) ca mt node

    Lin kt ngang (Horizontal link)

    Xoay phi (Right rotation Skew)

    Xoay tri (Left rotation Split)

  • 8/9/2019 Bai 2 - Advanced Data Structures

    19/33

    19

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 37

    AA Tree (tt)

    Cc khi nim: (tt)Mc (Level) ca mt node: l s lin kt tri t node n NULL

    Mc ca node NULL l 0

    Mc ca node l l 1

    BA

    C ED

    Mc 2

    Mc 1

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 38

    AA Tree (tt)

    Cc khi nim: (tt)Lin kt ngang (Horizontal link): l lin kt gia mtnode v node con ca node cng mt mc

    BA

    C ED

    Node cha

    Node con

    cng mc

  • 8/9/2019 Bai 2 - Advanced Data Structures

    20/33

    20

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 39

    AA Tree (tt)

    Cc khi nim: (tt)Xoay phi (Skew): xa b lin kt ngang bn tri

    S dng iu chnh cy

    X P

    A B C

    X P

    A B C

    tt1t

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 40

    AA Tree (tt)

    Cc khi nim: (tt)Xoay tri (Split): xo b 2 lin kt ngang lin tip bnphi

    S dng iu chnh cy

    X R

    A B

    GX

    R

    A B

    G

    t t1

    t

  • 8/9/2019 Bai 2 - Advanced Data Structures

    21/33

    21

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 41

    AA Tree (tt)

    Skew c th to ra nhiu lin kt ngang phi lintip s dng Split iu chnh

    5 103

    5 103

    5

    103

    Split

    Skew

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 42

    AA Tree (tt)

    nh ngha: AA tree l mt cy nh phn tmkim (BST) tun th cc quy tc sau:

    Lin kt ngang lun hng v bn phi

    Khng c 2 lin kt ngang lin tip nhau

    Mi node c mc > 1 s c 2 node con

    Nu mt node khng c lin kt ngang phi th 2node con ca n cng mc

  • 8/9/2019 Bai 2 - Advanced Data Structures

    22/33

    22

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 43

    AA Tree (tt)

    30 70

    85

    5

    60

    8010

    90

    15

    20

    50

    35 40 6555

    Lin kt nganglun hng v

    bn phiKhng c 2

    lin kt ngang

    lin tip

    Node c

    mc > 1

    c 2 con

    2 node con cng mc

    khi node cha khng c

    lin kt ngang

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 44

    AA Tree (tt)

    Tnh cht:Level ca node con tri lun nh hn level ca nodecha 1 n v

    Level ca node con phi nh hn hay bng level canode cha (nhng khng qu 1 n v)

    Thm mt node lun thc hin node c mc = 1

  • 8/9/2019 Bai 2 - Advanced Data Structures

    23/33

    23

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 45

    AA Tree (tt)

    Cu trc lu tr:

    typedef int DataType; // Kiu d liu

    typedef struct NodeTag {

    DataType key; // D liu

    struct NodeTag *pLeft;

    struct NodeTag *pRight;

    int level; // m c ca node

    } AANode;

    typedef struct AANode* AATREE;

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 46

    AA Tree (tt)

    Cc thao tc c bn:Khi thm 1 node

    Node thm vo bn tri to ra mt lin kt ngang bn tri thc hin Skew

    Node thm vo bn phi nu to ra 2 lin kt ngang lintip bn phi thc hin Split

    30 70

    85

    5

    60

    8010

    90

    15

    20

    50

    35 40 65553 48

    Skew Split

  • 8/9/2019 Bai 2 - Advanced Data Structures

    24/33

    24

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 47

    AA Tree (tt)

    Cc thao tc c bn: (tt)Tm mt phn t: hon ton ging cy BST

    30 70

    85

    5

    60

    8010

    90

    15

    20

    50

    35 40 6555

    Tm 55

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 48

    AA Tree (tt)

    Cc thao tc c bn: (tt)Thm mt node:

    30 70

    85

    5

    60

    8010

    90

    15

    20

    50

    35 40 655545

    Thm 45Cn Split

  • 8/9/2019 Bai 2 - Advanced Data Structures

    25/33

    25

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 49

    AA Tree (tt)

    Cc thao tc c bn: (tt)Thm mt node:

    30 70

    85

    5

    60

    8010

    90

    15

    20

    50

    35

    40

    655545

    Sau khi Split ti 35

    Cn Skew

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 50

    AA Tree (tt)

    Cc thao tc c bn: (tt)Thm mt node:

    30 70

    85

    5

    60

    8010

    90

    15

    20

    50

    35

    40

    655545

    Sau khi Skew ti 50

    Cn Split

  • 8/9/2019 Bai 2 - Advanced Data Structures

    26/33

    26

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 51

    AA Tree (tt)

    Cc thao tc c bn: (tt)Thm mt node:

    Sau khi Split ti 40

    Cn Skew

    Cn Split

    30 70

    85

    5

    60

    8010

    90

    15

    20

    50

    35

    40

    655545

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 52

    AA Tree (tt)

    Cc thao tc c bn: (tt)Thm mt node:

    30 70

    85

    5

    60

    8010 90

    15

    20

    50

    35

    40

    655545

    Sau khi Skew ti 70, v Split ti 30

    STOP !

  • 8/9/2019 Bai 2 - Advanced Data Structures

    27/33

    27

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 53

    AA Tree (tt)

    AATREE AA_Insert_Node(DataType x, AATREE t){

    if(t == NULL) { // to node mi v thm vo cyt = new AANode;

    t->key = x;

    t->pLeft = t->pRight = NULL;

    t->level = 1;

    }

    else if(x < t->key)

    t->pLeft = AA_Insert_Node(x, t->pLeft);

    else if(x > t->key)

    t->pRight = AA_Insert_Node(x, t->pRight);

    else return t; // trng khat = Skew(t);

    t = Split(t);

    return t;

    }

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 54

    AA Tree (tt)AATREE right_rotate(AATREE &t)

    {

    AATREE t1;

    t1 = t->pLeft;

    t->pLeft = t1->pRight;

    t1->pRight = t;

    return t1;

    }

    AATREE Skew(AATREE &t)

    {

    if (t->pLeft != NULL)if (t->pLeft->level == t->level)

    t = right_rotate(t);

    return t;

    }

  • 8/9/2019 Bai 2 - Advanced Data Structures

    28/33

    28

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 55

    AA Tree (tt)

    AATREE left_rotate(AATREE &t){

    AATREE t1;

    t1 = t->pRight;

    t->pRight = t1->pLeft;

    t1->pLeft = t;

    t1->level++;

    return t1;

    }

    AATREE Split(AATREE &t)

    {

    if (t->pRight !=NULL)

    if (t->pRight->pRight != NULL)

    if (t->pRight->pRight->level == t->level)

    t = left_rotate(t);

    return t;

    }

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 56

    AA Tree (tt)

    Cc thao tc c bn: (tt)Thm mt node: VD. thm 6

    10

    131 113

    2

    4

    8

    5 7

    12

    9

    6 ??

  • 8/9/2019 Bai 2 - Advanced Data Structures

    29/33

    29

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 57

    AA Tree (tt)

    Cc thao tc c bn: (tt)Xa mt node:

    10

    131 113

    2

    4

    8

    5 7

    12

    9

    6

    Xa 1

    Gim mc

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 58

    AA Tree (tt)

    Cc thao tc c bn: (tt)Xa mt node:

    10

    131132

    4

    8

    5 7

    12

    9

    6

    Gim mc

    Sau khi gim mc ti 2

  • 8/9/2019 Bai 2 - Advanced Data Structures

    30/33

    30

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 59

    AA Tree (tt)

    Cc thao tc c bn: (tt)Xa mt node:

    10

    131132

    4

    8

    5 7

    12

    9

    6

    Cn Skew

    Sau khi gim mc ti 4 v 10

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 60

    AA Tree (tt)

    Cc thao tc c bn: (tt)Xa mt node:

    10

    131132

    4

    8

    5 7

    12

    9

    6

    Cn Skew

    Sau khi Skew ti 10, ln 1

  • 8/9/2019 Bai 2 - Advanced Data Structures

    31/33

    31

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 61

    AA Tree (tt)

    Cc thao tc c bn: (tt)Xa mt node:

    10

    131132

    4 8

    5 7

    12

    9

    6

    Cn Split

    Sau khi Skew ti 10, ln 2

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 62

    AA Tree (tt)

    Cc thao tc c bn: (tt)Xa mt node:

    10

    131132

    4 8

    5 7

    12

    9

    6 Cn Split

    Sau khi Split ti 4

  • 8/9/2019 Bai 2 - Advanced Data Structures

    32/33

    32

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 63

    AA Tree (tt)

    Cc thao tc c bn: (tt)Xa mt node:

    10

    131132

    4 8

    5 7

    12

    9

    6

    Sau khi Split ti 8 STOP !

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 64

    AA Tree (tt)

    nh gi: phc tp O(log2N)

    Khng cn lu con trn node cha (pParent)

    Ci t n gin hn cy Red-Black

  • 8/9/2019 Bai 2 - Advanced Data Structures

    33/33

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 65

    Thank youThank you

    for your attentionfor your attention

    Autumn 2008 Data Structures & A lgori thms -Advanced data structures -Nguyen Tr i Tuan, DH.KHTN Tp.HCM 66

    Q & AQ & A