23 Tree Best Part

7
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 p 1 k 1 p 2 k 2 p 3 p 1 :Pointer to the first child p 2 :Pointer to the second child p 3 :Pointer to the third child k 1 :Smallest key that is a descendent of the second child k 2 :Smallest key that is a descendent of the third child Leaf Node ke y 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

description

 

Transcript of 23 Tree Best Part

Page 1: 23 Tree   Best Part

5.3 2-3 TreesDefinition

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 children2.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 childp2 : Pointer to the second childp3 : Pointer to the third childk1 : Smallest key that is a descendent of the second childk2 : 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

Search

Page 2: 23 Tree   Best Part

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 child2.

If x  k1 and the node has only two children, move to the second child3.

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.

   Figure 5.24: Insertion in 2-3 trees: An

example

Page 3: 23 Tree   Best Part

Figure 5.25: Deletion in 2-3 trees: An Example

Page 4: 23 Tree   Best Part
Page 5: 23 Tree   Best Part

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 vIf 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.