SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexión
CS230 Data Structures                                                             Handout # 28
Prof. Lyn Turbak                                                       Sunday, December 8, 2002
Wellesley College
                                           2-3 Trees

Balanced Search Trees
    Many data structures use binary search trees or generalizations thereof. Operations on such
search trees are often proportional to the height of the tree. To guarantee that such operations are
efficient, it is necessary to ensure that the height of the tree is logarithmic in the number of nodes.
This is usually achieved by some sort of balancing mechanism that guarantees that subtrees of a
node never differ too much in their heights.
    There are many forms of balanced search tree. Here we will study a particularly elegant form
of balanced search tree known as a 2-3 tree. There are many other forms of balanced search trees,
some of which you will encounter in CS231. These include red-black trees, AVL trees, 2-3-4 trees,
and B-trees.

2-3 Trees
   A 2-3 tree has three different kinds of nodes:

  1. A leaf, written as .

  2. A 2-node, written as


                                                       X


                                                 l         r

     X is called the value of the 2-node; l is its left subtree; and r is its right subtree. Every
     2-node must satisfy the following invariants:

      (a) Every value v appearing in subtree l must be ≤ X.
      (b) Every value v appearing in subtree r must be ≥ X.
       (c) The length of the path from the root of the 2-node to every leaf in its subtrees must be
           the same.

  3. A 3-node, written as

                                                                   .
                                                     X Y


                                             l         m       r

X is called the left value of the 3-node; Y is called the right value of the 3-node; l is its left
subtree; m is its middle subtree; and r is its right subtree.
   Every 3-node must satisfy the following invariants:

                                                   1
1. Every value v appearing in subtree l must be ≤ X.

  2. Every value v appearing in subtree m must be ≥ X and ≤ Y .

  3. Every value v appearing in subtree r must be ≥ Y .

  4. The length of the path from the root of the 3-node to every leaf in its subtrees must be the
     same.

    The path-length invariant on 2-nodes and 3-nodes means that 2-3 trees are necessarily balanced;
the height of a 2-3 tree with n nodes cannot exceed log 2 (n + 1). Together, the tree balance and
the ordered nature of the nodes means that testing membership in, inserting an element into, and
deleting an element from a 2-3 tree takes logarithmic time.

2-3 Tree Examples
   Given a collection of three or more values, there are several 2-3 trees containing those values.
For instance, below are all four distinct 2-3 trees containing first 7 positive integers.



                                    4                                                       2       5

                        2                       6                       1               3       4               6   7

                1           3               5               7



                                t1                                                              t2



                                3       5                                                       3       6

                1   2               4               6       7               1       2               4       5           7



                                t3                                                              t4


    We shall use the term terminal node to refer to a node that has leaves as its subtrees. To save
space, we often will not explicitly show the leaves that are the childred of a terminal node. For
instance, here is another depiction of the tree t2 above without the explicit leaves:

                                                                2   5

                                                        1       3   4   6       7




                                                                    2
2-3 Tree Insertion: Downward Phase
    When inserting an element v into a 2-3 tree, care is required to maintain the invariants of
2-nodes and 3-nodes. As shown in the rules below, the order invariants are maintained much as in
a binary search tree by comparing v to the node values encountered when descending the tree and
moving in a direction that satisfies the order invariants.
    In the following rules, the result of inserting an element v into a 2-3 tree is depicted as a circled
v with an arrow pointing down toward the tree in which it is to be inserted. X and Y are variables
that stand for any elements, while triangles labeled l, m, and r stand for whole subtrees. In the
case of insertion, such trees must be non-empty.
    The rules state that elements equal to a node value are always inserted to the left of the node.
This is completely arbitrary, they could be inserted to the right as well.

                                           v                        X
                                                        v≤X
                                           X            ⇒       v
                                                                         r

                                       l           r            l

                                           v                        X
                                                        X<v
                                           X            ⇒       l
                                                                         v



                                       l           r                     r

                                       v                                X Y
                                                        v≤X
                                   X Y                  ⇒       v
                                                                        m        r

                              l        m           r            l

                                   v                                     X Y
                                                       X <v≤Y
                                  X Y                   ⇒           l
                                                                             v
                                                                                     r

                          l       m            r                             m

                                       v                                X Y
                                                        Y <v
                                   X Y                  ⇒       l        m
                                                                                 v



                              l        m           r                             r

                                                         3
2-3 Tree Insertion: Terminal Cases
    If v reaches a terminal 2-node with value X, the balance invariant can be maintained by ab-
sorbing the inserted value v in a newly constructed 3-node with values v and X, as shown in the
following cases:

                     v                                  v
                           v≤X                                      X <v

                     X
                            ⇒             v X
                                                        X
                                                                    ⇒               X v




     However, if If v reaches a terminal 3-node with values X and Y , the value v cannot be absorbed.
But it is possible to split the three values v, X, and Y into two terminal 2-nodes and a third value
that is “kicked upstairs” because there is no room “downstairs”:
     In the following rules, the value “kicked upstairs” is drawn in a circle with an arrow pointing
up from it and with two subtrees that result from the split. We will consider the height of such a
configuration to be the height of the subtrees – i.e., the height does not include the circled element.
It is an invariant that the heights of the two subtrees of a kicked-up node will be identical.


                                      v
                                                v≤X                 X
                                   X Y
                                                ⇒
                                                         v                  Y




                                  v
                                            X <v≤Y                      v

                                X Y
                                                ⇒
                                                                X               Y




                                      v
                                                Y <v                Y
                                   X Y
                                                ⇒
                                                            X               v




                                                  4
2-3 Tree Insertion: Upward Phase
      If there is a 2-node upstairs, the value kicked upward (call it w) can be absorbed by the 2-node:

             X                                                       X

                                         w X                                                         X w

       w
                   r    ⇒                                    l
                                                                             w
                                                                                         ⇒
                                   l         m       r                                           l   m     r

  l        m                                                         m           r

    If there is a 3-node upstairs, it cannot simply be absorbed, and another split takes place in
which yet another value is kicked upstairs. This process continues until either the kicked-up value
is absorbed, or the root of the tree is reached. In the latter case, the kicked-up value becomes the
value of a brand new a new 2-node that increases the height of the tree by one. This is the only
way that the height of a 2-3 tree can increase.

                                    X Y
                                                                                 X

                           w
                                         c       d       ⇒               w               Y


                       a       b                                 a           b       c       d

                                   X Y
                                                                                 w
                       a
                                    w
                                                 d       ⇒               X               Y


                               b         c                       a           b       c       d

                               X Y
                                                                                 Y
                       a       b
                                             w
                                                         ⇒               X               w


                                         c       d               a           b       c       d

    You should convince yourself that path lengths and element order are unchanged by the down-
ward or upward phases of the insertion algorithm. This means that the tree result from insertion
is a valid 2-3 tree.

                                                         5
2-3 Tree Insertion Example
  Here we show the letter-by-letter insertion of the letters A L G O R I T H M S into an initially
empty 2-3 tree.



                       insert           insert               insert                       new root                     insert
                        →                →                    →                               →                         →
                         A       A        L       A L           G                                             G          O           G

                                                                              G                           A       L              A       L O

                                                                        A         L


      insert                            kick up                             insert                                    insert
          →                               →                                   →                                        →
          R            G                   O             G O                  I                   G O                   T                G O

                   A                               A        L         R                   A       I   L        R                 A       I   L       R T

                             O

                         L          R


          insert                                     kick up                                                  new root
           →                                             →                                                        →
           H                 G O                         I                                                                               I

                   A                       R T                                        I                                          G               O

                                I                                         G                   O                             A        H       L   R T

                           H        L                               A         H           L       R T


 insert                                            insert                                                      kick up
  →                                                 →                                                              →
  M                      I                           S                            I                                S                         I

               G                     O                              G                         O                                  G                   O S

           A       H       L M           R T                  A         H         L M                                        A       H       L M      R    T

                                                                                                      S

                                                                                                  R       T




                                                                                      6
2-3 Tree Deletion: Downward Phase
    The downward phase for deleting an element from a 2-3 tree is the same as the downward phase
for inserting an element except for the case when the element to be deleted is equal to the value in
a 2-node or a 3-node. In this case, if the value is not part of a terminal node, the value is replaced
by its in-order predecessor or in-order successor, just as in binary search tree deletion. This leaves
a hole in a terminal node.
    The goal of the rest of the deletion algorithm is to remove the hole without violating the other
invariants of the 2-3 tree.

2-3 Tree Deletion: Terminal Cases
   Handling the removal of a hole from a terminal 3-node is easy: just turn it into a 2-node!


                         X       ⇒         X              X          ⇒         X



    To deal with a hole in a terminal 2-node, we consider it to be a special hole node that has a
single subtree.


                                                  ⇒
    For the purposes of calculating heights, such a hole node does contribute to the height of the
tree. This decision allows the the path-length invariant to be preserved in trees with holes.




                                                  7
2-3 Tree Deletion: Upward Phase
    The goal of the upward phase of 2-3 tree deletion is to propagate the hole up the tree until it
can be eliminated. It is eliminated either (1) by being “absorbed” into the tree (as in the cases
2, 3, and 4 below) or (2) by being propagated all the way to the root of the 2-3 tree by repeated
applications of the case 1. If a hole node propagates all the way to the top of a tree, it is simply
removed, decreasing the height of the 2-3 tree by one. This is the only way that the height of a 2-3
node can decrease.
    There are four cases for hole propagation/removal, which are detailed below. In the following
rules, triangles stand for subtrees, which may possibly by empty. You should convince yourself that
each rule preserves both the element-order and path-length invariants.

  1. The hole has a 2-node as a parent and a 2-node as a sibling.


                         X                                                                        Y

                                 Y       ⇒               X Y                     ⇐           X


                 l       m           r           l           m           r           l           m       r


       In this case, the heights of the subtrees l, m, and r are the same.

  2. The hole has a 2-node as a parent and a 3-node as a sibling.



           X                                             Y                                                   Z

                Y Z                  ⇒       X                       Z           ⇐               X Y


   a       b         c       d           a           b           c           d           a           b       c   d


       In this case, the heights of the subtrees a, b, c, and d are the same.




                                                         8
3. The hole has a 3-node as a parent and a 2-node as a sibling. There are two subcases:

        (a) The first subcase involves subtrees a, b, and c whose heights are one less than that of
            subtree d.

                X Z                                             Z                                    Y Z

                 Y
                                d
                                        ⇒           X Y
                                                                        d
                                                                            ⇐               X
                                                                                                                   d

    a       b         c                         a       b       c                       a       b            c

        (b) The second subcase involves subtrees b, c, and d whose heights are one less than that of
            subtree a. When the hole is in the middle, there may be ambiguity in terms of whether to
            apply the right-hand rule of the first subcase or the left-hand rule of the second subcase.
            Either application is OK.

            X Y                                         X                                           X Z


    a
                          Z             ⇒       a
                                                            Y Z             ⇐           a
                                                                                                     Y


            b         c         d                       b       c       d                       b            c     d

    4. The hole has a 3-node as a parent and a 3-node as a sibling. Again there are two subcases.

        (a) The first subcase involves subtrees a, b, c, and d, whose heights are one less than that
            of subtree e.


                W Z                                         X Z                                              Y Z

                X Y
                                    e
                                        ⇒       W               Y
                                                                            e
                                                                                ⇐           W X
                                                                                                                       e

a       b        c         d                a       b       c       d               a           b        c         d

        (b) The second subcase involves subtrees b, c, d, and e, whose heights are one less than
            that of subtree a. When the hole is in the middle, there may be ambiguity in terms
            of whether to apply the right-hand rule of the first subcase or the left-hand rule of the
            second subcase. Either application is OK.


         W X                                            W Y                                          W Z


a
                          Y Z       ⇒       a
                                                        X               Z       ⇐   a
                                                                                                     X Y


        b        c         d        e               b       c       d       e                   b        c         d   e



                                                            9
2-3 Tree Deletion Example
    Here we show the letter-by-letter deletion of the letters A L G O R I T H M S from the final
2-3 tree of the insertion example:
                                                           delete                                                          case 1
                                                              →                                                              →
                          I                                     A                          I                                                            I

             G                       O S                                      G                        O S                                                          O S

      A          H       L M               R          T                           H       L M               R       T                   G H             L M             R         T

             case 2                                                       delete                                                 delete
              →                                                               →                                                    →
                                                   O                          L                                O                    G                       O

                                      I                         S                                  I                   S                        I                       S

                         G H               L M             R          T                G H                 M       R       T                H       M           R           T

   delete                                          replace                                         case 1                                    case 1
    →                                                  →                                               →                                        →
     O                                             by pred                    M                                            M

                     I                S                               I                S                                            S                               M S

              H          M       R            T                   H                R          T                 H I            R        T               H I                 R        T

         remove                                           delete                                       case 3(b)                                delete
             →                                             →                                               →                                      →
      root hole                   M S                       R                     M S                                          M                    I               M

                         H I              R       T                   H I                      T                       H I          S T                         H           S T

                     delete                        delete                     case 1                        remove                  delete              delete
                         →                            →                           →                            →                        →                   →
                         T            M                H            M                                      root hole    M S             M       S           S

                                  H           S                           S               M S

At the point where case 3(b) was applied, it is also possible to apply case 4(a) instead. This leads
to the following alternative deletion sequence:
                                 case 4(a)                                delete                                   replace                          case 3(a)
                                     →                                        →                                        →                                    →
             M S                                       I       S              I                        S           by pred          H S                                           S

  H I                    T                        H        M        T                  H          M         T                           M     T                         H M              T

    delete                                case 2                    delete                        case 1                   remove                   delete                  delete
      →                                    →                          →                            →                         →                          →                    →
         T                   S                            M           H               M                                 root hole       M S             M           S         S

                 H M                               H          S                           S                 M S

There are some other choices in the above sequences. In each of the spots where a deleted value
in a non-terminal node was replaced by its in-order predecessor, it could have been replaced by its
in-order successor.

                                                                                              10

Más contenido relacionado

Más de vikram singh

Más de vikram singh (20)

Agile
AgileAgile
Agile
 
Enterprise java beans(ejb) Update 2
Enterprise java beans(ejb) Update 2Enterprise java beans(ejb) Update 2
Enterprise java beans(ejb) Update 2
 
Web tech importants
Web tech importantsWeb tech importants
Web tech importants
 
Enterprise Java Beans( E)
Enterprise  Java  Beans( E)Enterprise  Java  Beans( E)
Enterprise Java Beans( E)
 
Enterprise java beans(ejb) update 2
Enterprise java beans(ejb) update 2Enterprise java beans(ejb) update 2
Enterprise java beans(ejb) update 2
 
Enterprise java beans(ejb)
Enterprise java beans(ejb)Enterprise java beans(ejb)
Enterprise java beans(ejb)
 
2 4 Tree
2 4 Tree2 4 Tree
2 4 Tree
 
JSP Scope variable And Data Sharing
JSP Scope variable And Data SharingJSP Scope variable And Data Sharing
JSP Scope variable And Data Sharing
 
Bean Intro
Bean IntroBean Intro
Bean Intro
 
jdbc
jdbcjdbc
jdbc
 
Sax Dom Tutorial
Sax Dom TutorialSax Dom Tutorial
Sax Dom Tutorial
 
Xml
XmlXml
Xml
 
Dtd
DtdDtd
Dtd
 
Xml Schema
Xml SchemaXml Schema
Xml Schema
 
JSP
JSPJSP
JSP
 
Request dispatching in servlet
Request dispatching in servletRequest dispatching in servlet
Request dispatching in servlet
 
Servlet Part 2
Servlet Part 2Servlet Part 2
Servlet Part 2
 
Tutorial Solution
Tutorial SolutionTutorial Solution
Tutorial Solution
 
Java Script Language Tutorial
Java Script Language TutorialJava Script Language Tutorial
Java Script Language Tutorial
 
Web Tech Java Servlet Update1
Web Tech   Java Servlet Update1Web Tech   Java Servlet Update1
Web Tech Java Servlet Update1
 

Último

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

Último (20)

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

2 - 3 Trees

  • 1. CS230 Data Structures Handout # 28 Prof. Lyn Turbak Sunday, December 8, 2002 Wellesley College 2-3 Trees Balanced Search Trees Many data structures use binary search trees or generalizations thereof. Operations on such search trees are often proportional to the height of the tree. To guarantee that such operations are efficient, it is necessary to ensure that the height of the tree is logarithmic in the number of nodes. This is usually achieved by some sort of balancing mechanism that guarantees that subtrees of a node never differ too much in their heights. There are many forms of balanced search tree. Here we will study a particularly elegant form of balanced search tree known as a 2-3 tree. There are many other forms of balanced search trees, some of which you will encounter in CS231. These include red-black trees, AVL trees, 2-3-4 trees, and B-trees. 2-3 Trees A 2-3 tree has three different kinds of nodes: 1. A leaf, written as . 2. A 2-node, written as X l r X is called the value of the 2-node; l is its left subtree; and r is its right subtree. Every 2-node must satisfy the following invariants: (a) Every value v appearing in subtree l must be ≤ X. (b) Every value v appearing in subtree r must be ≥ X. (c) The length of the path from the root of the 2-node to every leaf in its subtrees must be the same. 3. A 3-node, written as . X Y l m r X is called the left value of the 3-node; Y is called the right value of the 3-node; l is its left subtree; m is its middle subtree; and r is its right subtree. Every 3-node must satisfy the following invariants: 1
  • 2. 1. Every value v appearing in subtree l must be ≤ X. 2. Every value v appearing in subtree m must be ≥ X and ≤ Y . 3. Every value v appearing in subtree r must be ≥ Y . 4. The length of the path from the root of the 3-node to every leaf in its subtrees must be the same. The path-length invariant on 2-nodes and 3-nodes means that 2-3 trees are necessarily balanced; the height of a 2-3 tree with n nodes cannot exceed log 2 (n + 1). Together, the tree balance and the ordered nature of the nodes means that testing membership in, inserting an element into, and deleting an element from a 2-3 tree takes logarithmic time. 2-3 Tree Examples Given a collection of three or more values, there are several 2-3 trees containing those values. For instance, below are all four distinct 2-3 trees containing first 7 positive integers. 4 2 5 2 6 1 3 4 6 7 1 3 5 7 t1 t2 3 5 3 6 1 2 4 6 7 1 2 4 5 7 t3 t4 We shall use the term terminal node to refer to a node that has leaves as its subtrees. To save space, we often will not explicitly show the leaves that are the childred of a terminal node. For instance, here is another depiction of the tree t2 above without the explicit leaves: 2 5 1 3 4 6 7 2
  • 3. 2-3 Tree Insertion: Downward Phase When inserting an element v into a 2-3 tree, care is required to maintain the invariants of 2-nodes and 3-nodes. As shown in the rules below, the order invariants are maintained much as in a binary search tree by comparing v to the node values encountered when descending the tree and moving in a direction that satisfies the order invariants. In the following rules, the result of inserting an element v into a 2-3 tree is depicted as a circled v with an arrow pointing down toward the tree in which it is to be inserted. X and Y are variables that stand for any elements, while triangles labeled l, m, and r stand for whole subtrees. In the case of insertion, such trees must be non-empty. The rules state that elements equal to a node value are always inserted to the left of the node. This is completely arbitrary, they could be inserted to the right as well. v X v≤X X ⇒ v r l r l v X X<v X ⇒ l v l r r v X Y v≤X X Y ⇒ v m r l m r l v X Y X <v≤Y X Y ⇒ l v r l m r m v X Y Y <v X Y ⇒ l m v l m r r 3
  • 4. 2-3 Tree Insertion: Terminal Cases If v reaches a terminal 2-node with value X, the balance invariant can be maintained by ab- sorbing the inserted value v in a newly constructed 3-node with values v and X, as shown in the following cases: v v v≤X X <v X ⇒ v X X ⇒ X v However, if If v reaches a terminal 3-node with values X and Y , the value v cannot be absorbed. But it is possible to split the three values v, X, and Y into two terminal 2-nodes and a third value that is “kicked upstairs” because there is no room “downstairs”: In the following rules, the value “kicked upstairs” is drawn in a circle with an arrow pointing up from it and with two subtrees that result from the split. We will consider the height of such a configuration to be the height of the subtrees – i.e., the height does not include the circled element. It is an invariant that the heights of the two subtrees of a kicked-up node will be identical. v v≤X X X Y ⇒ v Y v X <v≤Y v X Y ⇒ X Y v Y <v Y X Y ⇒ X v 4
  • 5. 2-3 Tree Insertion: Upward Phase If there is a 2-node upstairs, the value kicked upward (call it w) can be absorbed by the 2-node: X X w X X w w r ⇒ l w ⇒ l m r l m r l m m r If there is a 3-node upstairs, it cannot simply be absorbed, and another split takes place in which yet another value is kicked upstairs. This process continues until either the kicked-up value is absorbed, or the root of the tree is reached. In the latter case, the kicked-up value becomes the value of a brand new a new 2-node that increases the height of the tree by one. This is the only way that the height of a 2-3 tree can increase. X Y X w c d ⇒ w Y a b a b c d X Y w a w d ⇒ X Y b c a b c d X Y Y a b w ⇒ X w c d a b c d You should convince yourself that path lengths and element order are unchanged by the down- ward or upward phases of the insertion algorithm. This means that the tree result from insertion is a valid 2-3 tree. 5
  • 6. 2-3 Tree Insertion Example Here we show the letter-by-letter insertion of the letters A L G O R I T H M S into an initially empty 2-3 tree. insert insert insert new root insert → → → → → A A L A L G G O G G A L A L O A L insert kick up insert insert → → → → R G O G O I G O T G O A A L R A I L R A I L R T O L R insert kick up new root → → → H G O I I A R T I G O I G O A H L R T H L A H L R T insert insert kick up → → → M I S I S I G O G O G O S A H L M R T A H L M A H L M R T S R T 6
  • 7. 2-3 Tree Deletion: Downward Phase The downward phase for deleting an element from a 2-3 tree is the same as the downward phase for inserting an element except for the case when the element to be deleted is equal to the value in a 2-node or a 3-node. In this case, if the value is not part of a terminal node, the value is replaced by its in-order predecessor or in-order successor, just as in binary search tree deletion. This leaves a hole in a terminal node. The goal of the rest of the deletion algorithm is to remove the hole without violating the other invariants of the 2-3 tree. 2-3 Tree Deletion: Terminal Cases Handling the removal of a hole from a terminal 3-node is easy: just turn it into a 2-node! X ⇒ X X ⇒ X To deal with a hole in a terminal 2-node, we consider it to be a special hole node that has a single subtree. ⇒ For the purposes of calculating heights, such a hole node does contribute to the height of the tree. This decision allows the the path-length invariant to be preserved in trees with holes. 7
  • 8. 2-3 Tree Deletion: Upward Phase The goal of the upward phase of 2-3 tree deletion is to propagate the hole up the tree until it can be eliminated. It is eliminated either (1) by being “absorbed” into the tree (as in the cases 2, 3, and 4 below) or (2) by being propagated all the way to the root of the 2-3 tree by repeated applications of the case 1. If a hole node propagates all the way to the top of a tree, it is simply removed, decreasing the height of the 2-3 tree by one. This is the only way that the height of a 2-3 node can decrease. There are four cases for hole propagation/removal, which are detailed below. In the following rules, triangles stand for subtrees, which may possibly by empty. You should convince yourself that each rule preserves both the element-order and path-length invariants. 1. The hole has a 2-node as a parent and a 2-node as a sibling. X Y Y ⇒ X Y ⇐ X l m r l m r l m r In this case, the heights of the subtrees l, m, and r are the same. 2. The hole has a 2-node as a parent and a 3-node as a sibling. X Y Z Y Z ⇒ X Z ⇐ X Y a b c d a b c d a b c d In this case, the heights of the subtrees a, b, c, and d are the same. 8
  • 9. 3. The hole has a 3-node as a parent and a 2-node as a sibling. There are two subcases: (a) The first subcase involves subtrees a, b, and c whose heights are one less than that of subtree d. X Z Z Y Z Y d ⇒ X Y d ⇐ X d a b c a b c a b c (b) The second subcase involves subtrees b, c, and d whose heights are one less than that of subtree a. When the hole is in the middle, there may be ambiguity in terms of whether to apply the right-hand rule of the first subcase or the left-hand rule of the second subcase. Either application is OK. X Y X X Z a Z ⇒ a Y Z ⇐ a Y b c d b c d b c d 4. The hole has a 3-node as a parent and a 3-node as a sibling. Again there are two subcases. (a) The first subcase involves subtrees a, b, c, and d, whose heights are one less than that of subtree e. W Z X Z Y Z X Y e ⇒ W Y e ⇐ W X e a b c d a b c d a b c d (b) The second subcase involves subtrees b, c, d, and e, whose heights are one less than that of subtree a. When the hole is in the middle, there may be ambiguity in terms of whether to apply the right-hand rule of the first subcase or the left-hand rule of the second subcase. Either application is OK. W X W Y W Z a Y Z ⇒ a X Z ⇐ a X Y b c d e b c d e b c d e 9
  • 10. 2-3 Tree Deletion Example Here we show the letter-by-letter deletion of the letters A L G O R I T H M S from the final 2-3 tree of the insertion example: delete case 1 → → I A I I G O S G O S O S A H L M R T H L M R T G H L M R T case 2 delete delete → → → O L O G O I S I S I S G H L M R T G H M R T H M R T delete replace case 1 case 1 → → → → O by pred M M I S I S S M S H M R T H R T H I R T H I R T remove delete case 3(b) delete → → → → root hole M S R M S M I M H I R T H I T H I S T H S T delete delete case 1 remove delete delete → → → → → → T M H M root hole M S M S S H S S M S At the point where case 3(b) was applied, it is also possible to apply case 4(a) instead. This leads to the following alternative deletion sequence: case 4(a) delete replace case 3(a) → → → → M S I S I S by pred H S S H I T H M T H M T M T H M T delete case 2 delete case 1 remove delete delete → → → → → → → T S M H M root hole M S M S S H M H S S M S There are some other choices in the above sequences. In each of the spots where a deleted value in a non-terminal node was replaced by its in-order predecessor, it could have been replaced by its in-order successor. 10