23 Tree Best Part

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    23 Tree Best Part - Presentation Transcript

    1. 5.3 2-3 Trees Definition • A 2-3 Tree is a null tree (zero nodes) or a single node tree (only one node) or a multiple node tree with the following properties: 1. Each interior node has two or three children 2. Each path from the root to a leaf has the same length. Fields of a Node : Internal Node p1 k1 p2 k2 p3 p1 : Pointer to the first child p2 : Pointer to the second child p3 : Pointer to the third child k1 : Smallest key that is a descendent of the second child k2 : Smallest key that is a descendent of the third child Leaf Node key other fields Records are placed at the leaves. Each leaf contains a record (and key) Example: See Figure 5.23 Figure 5.23: An example of a 2-3 tree
    2. Search • The values recorded at the internal nodes can be used to guide the search path. • To search for a record with key value x, we first start at the root. Let k1 and k2 be the two values stored here. 1. If x < k1, move to the first child 2. If x k1 and the node has only two children, move to the second child 3. If x k1 and the node has three children, move to the second child if x < k2 and to the third child if x k2. • Eventually, we reach a leaf. x is in the tree iff x is at this leaf. Path Lengths • A 2-3 Tree with k levels has between 2k - 1 and 3k - 1 leaves • Thus a 2-3 tree with n elements (leaves) requires at least 1 + log3n levels at most 1 + log2n levels 5.3.1 2-3 Trees: Insertion For an example, see Figure 5.24.
    3. Figure 5.24: Insertion in 2-3 trees: An example Figure 5.25: Deletion in 2-3 trees: An Example
    4. Insert (x) 1. Locate the node v, which should be the parent of x 2. If v has two children, • make x another child of v and place it in the proper order • adjust k1 and k2 at node v to reflect the new situation 3. If v has three children, • split v into two nodes v and v'. Make the two smallest among four children stay with v and assign the other two as children of v'. • Recursively insert v' among the children of w where w = parent of v • The recursive insertion can proceed all the way up to the root, making it necessary to split the root. In this case, create a new root, thus increasing the number of levels by 1. 5.3.2 2-3 Trees: Deletion Delete (x) 1. Locate the leaf L containing x and let v be the parent of L 2. Delete L. This may leave v with only one child. If v is the root, delete v and let its lone child become the new root. This reduces the number of levels by 1. If v is not the root, let p = parent of v If p has a child with 3 children, transfer an appropriate one to vif this child is adjacent (sibling) to v. If children of p adjacent to v have only two children, transfer the lone child of v to an adjacent sibling of v and delete v. • If p now has only one child, repeat recursively with p in place of v. The recursion can ripple all the way up to the root, leading to a decrease in the number of levels. Example: See Figure 5.25.
    SlideShare Zeitgeist 2009

    + vikram singhvikram singh Nominate

    custom

    98 views, 0 favs, 0 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 98
      • 98 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 3
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories