2-3-4 Tree

Document Sample
2-3-4 Tree Powered By Docstoc
					2 3 4
2-3-4 Tree

 B- Tree
       Outline


  l    d Search Trees
Balanced S    h
 •   2-3 Trees
 •   2 3 4
     2-3-4 Trees
 •   B-Tree




                        CSCI 2720
                            Slide 2
             2-3-4 Trees
   • similar to 2-3 trees
   • 4-nodes can have 3 items and 4 children



4-node




                                          CSCI 2720
                                               Slide 3
2-3-4 Tree Example




                     CSCI 2720
                         Slide 4
     2-3-4 Tree: Insertion

Insertion procedure:
      i il      insertion i 2 3 trees
   • similar to i     i   in 2-3
   • items are inserted at the leafs
     s ce       ode ca o a e a o e e ,
   • since a 4-node cannot take another item,
     4-nodes are split up during insertion process

Strategy
   • on the way from the root down to the leaf:
     split up all 4-nodes "on the way"
     insertion can be done in one pass
     (remember: in 2-3 trees, a reverse pass might be necessary)




                                                         CSCI 2720
                                                              Slide 5
       2-3-4 Tree: Insertion

Inserting 60, 30, 10, 20, 50, 40, 70, 80, 15, 90, 100




                                               CSCI 2720
                                                    Slide 6
        2-3-4 Tree: Insertion

Inserting 60, 30, 10, 20 ...




                               ... 50, 40 ...

                                    CSCI 2720
                                          Slide 7
        2-3-4 Tree: Insertion

Inserting 50, 40 ...




                          ... 70, ...

                                CSCI 2720
                                        Slide 8
        2-3-4 Tree: Insertion

Inserting 70 ...




                          ... 80, 15 ...

                                CSCI 2720
                                     Slide 9
        2-3-4 Tree: Insertion

Inserting 80, 15 ...




                          ... 90 ...

                                CSCI 2720
                                       Slide 10
        2-3-4 Tree: Insertion

Inserting 90 ...




                          ... 100 ...

                                CSCI 2720
                                    Slide 11
        2-3-4 Tree: Insertion

Inserting 100 ...




                                CSCI 2720
                                   Slide 12
 2-3-4 Tree: Insertion Procedure

Splitting 4-nodes during Insertion




                                     CSCI 2720
                                        Slide 13
  2-3-4 Tree: Insertion Procedure

Splitting a 4-node whose parent is a 2-node during insertion




                                                     CSCI 2720
                                                         Slide 14
  2-3-4 Tree: Insertion Procedure

Splitting a 4-node whose parent is a 3-node during insertion




                                                     CSCI 2720
                                                         Slide 15
           2-3-4 Tree: Deletion
Deletion procedure:
   • similar to deletion in 2-3 trees
   • items are deleted at the leafs
        swap item of internal node with inorder successor
   • note: a 2-node leaf creates a problem

Strategy   (different strategies possible)

   • on the way from the root down to the leaf:
     turn 2-nodes (except root) into 3-nodes
     deletion can be done in one pass
     (remember: in 2-3 trees, a reverse pass might be necessary)




                                                            CSCI 2720
                                                                   Slide 16
                2-3-4 Tree: Deletion
Turning a 2-node into a 3-node ...
 Case 1: an adjacent sibling has 2 or 3 items
       "steal" item from sibling by rotating items and moving subtree




                 30 50                                   20 50


   10 20          40                        10              30 40
                               "rotation"


           25                                          25



                                                             CSCI 2720
                                                                    Slide 17
               2-3-4 Tree: Deletion
Turning a 2-node into a 3-node ...
 Case 2: each adjacent sibling has only one item
         "steal" item from parent and merge node with sibling
         (note: parent has at least two items, unless it is the root)




                    30 50                                               50


    10                  40                                 10 30 40
                                         merging


          25       35                                       25    35



                                                                        CSCI 2720
                                                                             Slide 18
 2-3-4 Tree: Deletion Practice
Delete 32, 35, 40, 38, 39, 37, 60




                                    CSCI 2720
                                       Slide 19
                     B-Trees




• Large degree B-trees used to represent very large
  dictionaries that reside on disk.
• Smaller degree B-trees used for internal-memory
  dictionaries to overcome cache-miss penalties.



                                                CSCI 2720
                                                      Slide 20
              AVL Trees

• n = 230 = 109 (approx)
                (approx).
• 30 <= height <= 43.
    h h AVL tree resides on a di k up to 43
• When the A              id       disk,
  disk access are made for a search.
• This takes up to (approx) 4 seconds.
• Not acceptable.
           p


                                     CSCI 2720
                                        Slide 21
           Red-Black Trees

• n = 230 = 109 (approx)
                (approx).
• 30 <= height <= 60.
     h h d bl k               id        di k
• When the red-black tree resides on a disk, up
  to 60 disk access are made for a search.
• This takes up to (approx) 6 seconds.
• Not acceptable.
           p


                                          CSCI 2720
                                             Slide 22
        m-way Search Trees


• Each node has up to m – 1 pairs and m children.
• m = 2 => binary search tree.
         >               tree




                                         CSCI 2720
                                            Slide 23
      4-Way Search Tree




       10          30
       35


 k<       10 < k    30 < k    k>
10       < 30      < 35      35


                             CSCI 2720
                                   Slide 24
         Maximum # Of Pairs

                                      m nodes.
• Happens when all internal nodes are m-nodes.
• Full degree m tree.
                                       h-1
• # of nodes = 1 + m + m2 + m3 + … + mh 1
      f d
  = (mh – 1)/(m – 1).
• Each node has m – 1 pairs.
           pairs = mh – 1.
• So, # of p
     ,


                                         CSCI 2720
                                            Slide 25
 Capacity Of m-Way Search
            Tree

      m=2   m = 200
                  6
h=3    7    8 * 10 - 1
                   11
h=5   31    3.2 * 10 - 1
                     16
h=7   127   1.28 * 10 - 1




                            CSCI 2720
                               Slide 26
        Definition Of B-Tree

• Definition assumes external nodes
  (extended m-way search tree).
  (     d d             h     )
• B-tree of order m.
  – m-way search tree.
           py
  – Not empty => root has at least 2 children.
  – Remaining internal nodes (if any) have at least
    ceil(m/2) children.
  – External (or failure) nodes on same level.

                                              CSCI 2720
                                                 Slide 27
       2-3 And 2-3-4 Trees

• B-tree of order m.
  – m-way search tree.
  – Not empty => root has at least 2 children.
  – Remaining internal nodes (if any) have at least
    ceil(m/2) children.
  – External (or failure) nodes on same level.



• 2-3 tree is B-tree of order 3.
• 2-3-4 tree is B-tree of order 4.2720
                               CSCI
                                                 Slide 28
    B-Trees Of Order 5 And 2

• B-tree of order m.
  – m-way search tree.
  – Not empty => root has at least 2 children.
  – Remaining internal nodes (if any) have at least
    ceil(m/2) children.
  – External (or failure) nodes on same level.
• B-tree of order 5 is 3-4-5 tree (root
        be 2-node th
  may b 2          d though).   h)
• B-tree of order 2 is full binary tree.
                                             CSCI 2720
                                                 Slide 29
        Minimum # Of Pairs
• n = # of pairs.
• # of external nodes = n + 1.
• Height = h => external nodes on level h + 1.

      level              # of
       1                 nodes
                            1
       2                    >= 2
       3                    >=
     h+                     2*ceil(m/2)
                            >=    ( / )
     1 n + 1 >=             2*ceil(m/2)h-
                                    CSCI 2720
                                            Slide 30

     2*ceil(m/2) h-1 h 1
                       >= 1
       Minimum # Of Pairs

           n + 1 >=
       2*ceil(m/2)h-1
       2* il( /2)h 1, h >= 1
• m = 200.
      heig         # of
      ht
       2           pairs
                   p>=
       3            >=
                    199
       4            >
                    19 999 106 – 1
                    >= 2 *
                    19,999
       5            >= 2 * 108 – 1

          h <= log   ceil(m/2)
                                 CSCI 2720
                                    Slide 31

     [(n+1)/2] + 1
                   Choice Of m

• Worst-case search time.
  – (time to fetch a node + time to search node) * height
    (                 g )
  – (a + b*m + c * log2m) * h
      where a, b and c are constants.



search
sea c
time

                50                   400          CSCI 2720
                          m                           Slide 32
               Insert
                 8


       4
                            15   20


 1         5            9   16   17 30   40
 3         6




Insertion into a full leaf triggers
bottom up                   pass.
bottom-up node splitting pass
                                      CSCI 2720
                                          Slide 33
        Split An Overfull Node
  m a0 p1 a1 p2 a2 …
pm am
• ai is a pointer to a subtree.
• pi is a dictionary pair
                      pair.

 ceil(m/2) 1 a0 p1 a1 p2 a2 …
 ceil(m/2)-1
pceil(m/2)-1 aceil(m/2)-1
 m-ceil(m/2) aceil(m/2) pceil(m/2)+1
aceil(m/2)+1 … pm am
 • pceil(m/2) plus pointer to new node
                                   CSCI 2720
   is inserted in parent.               Slide 34
                     Insert
                          8


           4
                                     15   20


 1             5                 9   16   17 30   40
 3             6


• Insert a pair with key = 2.
• New pair goes into a 3-node.




                                               CSCI 2720
                                                   Slide 35
   Insert Into A Leaf 3-node
• Insert new pair so that the 3 keys are in
  ascending order.
                     123

• Split overflowed node around
  middle key. 2

                 1         3



• Insert middle key and pointer
                   p
  to new node into parent.
                                          CSCI 2720
                                              Slide 36
                   Insert
                      8


           4
                                15   20


    1          5            9   16   17 30   40
    3          6




•   Insert a pair with key = 2.

                                          CSCI 2720
                                              Slide 37
                    Insert
                         8


        4       2
                                 15   20

                     3
  1         5                9   16   17 30   40
            6




• Insert a pair with key = 2 plus a
pointer into parent.
                                           CSCI 2720
                                               Slide 38
                Insert
                  8



        2                    15   20
        4

    1   3   5            9   16   17 30   40
            6




•Now, insert a pair with key
= 18.
                                       CSCI 2720
                                           Slide 39
  Insert Into A Leaf 3-node
               i      h h keys are in
• Insert new pair so that the 3 k  i
  ascending order.
                     16 17 18

                       node.
• Split the overflowed node
                17

           16          18


• Insert middle key and pointer
  to new node into parent.
                   p
                                    CSCI 2720
                                        Slide 40
                Insert
                   8



       2                     15   20
       4

  1     3   5            9   16   17 30   40
            6




• Insert a pair with key = 18.

                                       CSCI 2720
                                           Slide 41
                Insert
                   8
                                        17

       2                     15   20              18
       4

  1     3   5            9    16       30    40
            6




• Insert a pair with key = 17 plus a
p            parent.
pointer into p
                                        CSCI 2720
                                              Slide 42
                Insert
                   8        17



       2                   15       20
       4

  1     3   5          9        16 18    30   40
            6




• Insert a pair with key = 17 plus a
pointer into p
p            parent.
                                          CSCI 2720
                                               Slide 43
                Insert
                       8   17



       2               15         20
       4

  1     3   5      9        16   18    30   40
            6




• Now, insert a pair with key = 7.

                                        CSCI 2720
                                             Slide 44
                Insert
                           8   17


6
            2              15         20
    7       4

        1   3    5     9        16   18    30    40




• Insert a pair with key = 6 plus a
p            parent.
pointer into p
                                      CSCI 2720
                                           Slide 45
                        Insert
                   8   17               4

                                                6
     2             15         20

                                            5         7
1        3     9        16   18    30
                                   40




    • Insert a pair with key = 4 plus a
    p            parent.
    pointer into p
                                            CSCI 2720
                                                Slide 46
                        Insert
                                 8
            4
                                       17


    2               6
                                 15          20


1       3       5       7
                             9        16    18    30
                                                  40


• Insert a pair with key = 8 plus a
pointer into parent.
• There is no parent. So, create a new 47
                                   CSCI 2720
                                       Slide
root.
                        Insert
                            8



            4                             17



    2               6               15          20



1       3       5       7       9        16    18    30
                                                     40


                      1.
• Height increases by 1
                                                     CSCI 2720
                                                          Slide 48

				
DOCUMENT INFO
Shared By:
Stats:
views:29
posted:9/22/2012
language:simple
pages:48