Page 3
Administrivia ● Project 2AB released. ○ ArrayHeapMinPQ due Saturday 3/16 ○ K-D Tree due Saturday 3/23 ● Lab 8 is out, due Friday 3/15! ○ Labs will likely be released Sundays now. ○ You implement a HashMap! ● Did you know Challenge Labs are a thing? ● Discussion survey: tinyurl.com/cz-disc8-sp19
Page 4
Balanced Search Trees - Bushy was better than spindly trees in terms of runtime - 2-3 Trees! (also called 2-4 Trees) - Should still follow the BST property (less on the left, greater on the right) - Each node contains 1-2 elements with 2-3 children nodes - If we want to insert an element, traverse down the tree and put it in the corresponding leaf node (we will always add to leaf nodes) - It’s possible that it will have more than 2 elements - After inserting, split the node by picking the middle element to send up. - This can happen recursively Try inserting z into our 2-3 Tree!
Page 5
LLRB Tree - Implemented like a BST, but use different colored links to represent 2-3 trees - Black link: connects parent 2-3 tree node to child 2-3 tree node (same as regular tree) - Red link: “glues” child to parent, child and parent are in the same 2-3 tree node - Has one-to-one mapping with 2-3 tree, which means for every LLRB there is a corresponding 2-3 tree!
Page 9
Exercise 1.1 Draw what the following 2-3 tree left-leaning red black tree would look like after inserting 18, 38, 12, 13, and 20. 8 6 14 4 7 10 15 3 5
Page 10
Problem 1.1/1.2 + 18 8 8 6 14 4 6 14 4 7 10 15 3 5 7 10 15 3 5 What colored links should we use to add?
Page 13
1. Left leaning violation 8 6 14 Fix: RotateLeft(15) 4 7 10 15 In general, RotateLeft(parent of 3 5 18 bad red link)
Page 14
1. Left leaning violation 8 6 14 Fix: RotateLeft(15) 4 7 10 15 In general, RotateLeft(parent of 3 5 18 bad red link)
Page 15
1. Left leaning violation 8 6 14 rotateLeft(NODE): Let x be the right child of 4 7 10 15 NODE. Make NODE the new left child of x. 3 5 18
Page 16
1. Left leaning violation 8 6 14 rotateLeft(NODE): Let x be the right child of 4 7 10 15 NODE. Make NODE the new left child of x. 3 5 18
Page 17
1. Left leaning violation 8 6 14 rotateLeft(NODE): Let x be the right child of 4 7 10 NODE. Make NODE the new left child of x. 3 5 18 15
Page 18
1. Left leaning violation 8 6 14 rotateLeft(NODE): Let x be the right child of 4 7 10 NODE. Make NODE the new left child of x. 3 5 18 15
Page 19
1. Left leaning violation 8 6 14 rotateLeft(NODE): Let x be the right child of 4 7 10 NODE. Make NODE the new left child of x. 3 5 18 15
Page 20
1. Left leaning violation 8 6 14 rotateLeft(NODE): Let x be the right child of 4 7 10 18 NODE. Make NODE the new left child of x. 3 5 15
Affichage des 20 premières pages. Téléchargez le document pour le voir en entier.
Commentaires (0)
Aucun commentaire pour le moment. Soyez le premier !