Presentation is loading. Please wait.

Presentation is loading. Please wait.

2-3-4 Trees Red-Black Trees

Similar presentations


Presentation on theme: "2-3-4 Trees Red-Black Trees"— Presentation transcript:

1 2-3-4 Trees Red-Black Trees
CIS265/506 2-3-4 Trees Red-Black Trees CIS265/506: Red-Black Trees

2 Some of the following material is from: Data Structures for Java William H. Ford William R. Topp ISBN Chapter 27 Balanced Search Trees Bret Ford © 2005, Prentice Hall CIS265/506: Red-Black Trees CIS265/506: Red-Black Trees

3 2-3-4 Trees 2-3-4 Trees are a slightly less efficient than red-black trees (next topic) but easier to code and understand. As in most of the self-balanced trees, they facilitate searching, insertions and deletions in the order of O(log N) operations regardless of how data values are entered. CIS265/506: Red-Black Trees CIS265/506: Red-Black Trees

4 2-3-4 Tree Concepts Each node has 2-4 outgoing links.
This means that there are 0-3 data items in a node. The number of links is referred to as the order of the tree Data items in the node are stored in sorted order. The links may have to move depending on insertions or deletions to the data in the node Links refer to children that are between the data items. End links just compare to the nearest data item (lesser or greater). There will always be one more link than the number of data items CIS265/506: Red-Black Trees

5 2-3-4 Tree Concepts Each node has 2-4 outgoing links.
This means that there are 0-3 data items in a node. The number of links is referred to as the order of the tree 2-Node: [ptr, A, ptr] 3-Node: [ptr, A, ptr, B, ptr] 4-node: [ptr, A, ptr, B, ptr, C, ptr] ptr1 A Ptr2 B ptr3 C ptr4 < A < B < C > C CIS265/506: Red-Black Trees

6 2-3-4 Tree Concepts Data items in the node are stored in sorted order.
The links may have to move depending on insertions or deletions to the data in the node A < B < C ptr1 A Ptr2 B ptr3 C ptr4 CIS265/506: Red-Black Trees

7 2-3-4 Tree Concepts Outgoing Links refer/point to children that are between the data items. End links just compare to the nearest data item (lesser or greater). There will always be one more link than the number of data items CIS265/506: Red-Black Trees

8 2-3-4 Tree Concepts A Split refer to the process where a full node is broken into two and a value is propagated up to its’ parent (or a new parent is made). The details of the Split process are as follows A new node is created that will be the sibling of the node to be split Move the last item into the new node Item A is left as is The rightmost two children are attached to the new node Item B is moved up one level CIS265/506: Red-Black Trees

9 2-3-4 Tree Concepts Searching
Finding data in a tree is just like searching in a binary tree so long as order is 2. (left brach < node & right branch > node). Otherwise, we need to search each of the data items in the node until we find one greater than the value we are looking at or reach the end. If the former occurs, take the previous link. Else, take the last link node < > left right CIS265/506: Red-Black Trees

10 2-3-4 Tree Concepts Inserting into a Tree can be fairly easy or hard, depending on the condition of the nodes on the way to this node If all the nodes on the path are not full, we just need to traverse the tree and insert the data at the leaf level If the nodes on the way are full, we split the node and continue if the leaf is full then we split that and move the middle value up CIS265/506: Red-Black Trees

11 2-3-4 Trees In a 2-3-4 tree, a 2‑node has two children and one value,
a 3-node has 3 children and 2 values, and a 4-node has 4 children and 3 values. CIS265/506: Red-Black Trees CIS265/506: Red-Black Trees

12 Searching a Tree To find a given value called item, start at the root and compare item with the values in the existing node. If no match occurs, move to the appropriate sub-tree. Repeat the process until you find a match or encounter an empty sub-tree. CIS265/506: Red-Black Trees CIS265/506: Red-Black Trees

13 Searching a 2-3-4 Tree CIS265/506: Red-Black Trees

14 Inserting into a 2-3-4 Tree
New data items are always inserted in leaves at the bottom of the tree. To insert a new item, move down the tree, splitting any 4-node encountered in the insertion path. Split a node by moving its middle element up one level and creating two new 2-nodes descendants (this includes splitting the root if it is a 4-node – see next figure). CIS265/506: Red-Black Trees CIS265/506: Red-Black Trees

15 Inserting into a 2-3-4 Tree (continued)
Splitting a 4-node. CIS265/506: Red-Black Trees CIS265/506: Red-Black Trees

16 Inserting into a 2-3-4 Tree (continued)
Insert into a tree the following data values: 2, 15, 12, 4, 8, 10, 25, 35, 55, 11 CIS265/506: Red-Black Trees CIS265/506: Red-Black Trees

17 Building a 2-3-4 Tree Insert: 2, 15, 12 Insert: 4 Insert: 8, 10
CIS265/506: Red-Black Trees CIS265/506: Red-Black Trees

18 Building a 2-3-4 Tree (continued)
Insert: 25, 35 Insert: 55 CIS265/506: Red-Black Trees CIS265/506: Red-Black Trees

19 Building a 2-3-4 Tree (continued)
Insert: 55 CIS265/506: Red-Black Trees CIS265/506: Red-Black Trees

20 Building a 2-3-4 Tree (concluded)
Insert: 11 CIS265/506: Red-Black Trees CIS265/506: Red-Black Trees

21 Efficiency of Trees In a tree with n elements, the maximum number of nodes visited during the search for an element is log2 (n) + 1. Inserting an element into a 2‑3‑4 tree with n elements requires splitting no more than log2n nodes and normally requires far fewer splits. CIS265/506: Red-Black Trees CIS265/506: Red-Black Trees

22 Red-Black Trees A red-black tree is a binary search tree in which each node has the color attribute BLACK or RED. It was designed as a representation of a tree, using different color combinations to describe the 3-nodes and 4-nodes. It is a type of tree that maintains balance via a set of four rules and associated operations to enforce those rules. “intelligent” work is done as nodes are inserted as well as when they are deleted CIS265/506: Red-Black Trees

23 The Four Rules Every node in the tree is colored red or black
The root is always colored black If a node is red its children are always black Every path to all leaves (filled or waiting to be filled) must go through the same number of black nodes CIS265/506: Red-Black Trees

24 Red-Black Trees CIS265/506: Red-Black Trees

25 Representing 2-3-4 Tree Nodes
A 2-node is always black. A 4-node has the middle value as a black parent and the other values as red children. CIS265/506: Red-Black Trees CIS265/506: Red-Black Trees

26 Representing 2-3-4 Tree Nodes (concluded)
Represent a 3-node with a BLACK parent and a smaller RED left child or with a BLACK parent and a larger RED right child. CIS265/506: Red-Black Trees CIS265/506: Red-Black Trees

27 Representing a 2-3-4 Tree as a Red-Black Tree
CIS265/506: Red-Black Trees CIS265/506: Red-Black Trees

28 Properties of a Red-Black Tree
These properties follow from the representation of a tree as a red-black tree. Root of red-black tree is always BLACK. A RED parent never has a RED child. Thus in a red‑black tree there are never two successive RED nodes. Every path from the root to an empty subtree contains the same number of BLACK nodes. The number, called the black height, defines balance in a red-black tree. CIS265/506: Red-Black Trees CIS265/506: Red-Black Trees

29 Inserting a Node in a Red-Black Tree (continued)
Enter a new element into the tree as a RED leaf node. Inserting a RED node at the bottom of a tree may result in two successive RED nodes. When this occurs, use a rotation and recoloring to reorder the tree. Maintain the root as a BLACK node. CIS265/506: Red-Black Trees CIS265/506: Red-Black Trees

30 Building a Red-Black Tree
CIS265/506: Red-Black Trees CIS265/506: Red-Black Trees

31 Building a Red-Black Tree (continued)
CIS265/506: Red-Black Trees CIS265/506: Red-Black Trees

32 Building a Red-Black Tree (concluded)
Insert 30 CIS265/506: Red-Black Trees CIS265/506: Red-Black Trees

33 Red-Black Tree Search Running Time
The worst‑case running time to search a red-black tree or insert an item is O(log2n). The maximum length of a path in a red-black tree with black height B is 2*B-1. CIS265/506: Red-Black Trees CIS265/506: Red-Black Trees

34 Note There is no code in your text for this structure.
CIS265/506: Red-Black Trees


Download ppt "2-3-4 Trees Red-Black Trees"

Similar presentations


Ads by Google