Redblack trees Define the red-black tree properties - - PowerPoint PPT Presentation

red black trees define the red black tree properties
SMART_READER_LITE
LIVE PREVIEW

Redblack trees Define the red-black tree properties - - PowerPoint PPT Presentation

Redblack trees Define the red-black tree properties Describe and implement rotations Implement red-black tree insertion We will skip


slide-1
SLIDE 1

Red–black ¡trees ¡

slide-2
SLIDE 2

¡ Define ¡the ¡red-­‑black ¡tree ¡properties ¡ ¡ Describe ¡and ¡implement ¡rotations ¡ ¡ Implement ¡red-­‑black ¡tree ¡insertion ¡ § We ¡will ¡skip ¡red-­‑black ¡tree ¡deletion ¡

October 2004 John Edgar 2

slide-3
SLIDE 3

¡ Items ¡can ¡be ¡inserted ¡in ¡

and ¡removed ¡from ¡BSTs ¡ in ¡O(height) ¡time ¡ ¡

¡ So ¡what ¡is ¡the ¡height ¡of ¡a ¡

BST? ¡

§ If ¡the ¡tree ¡is ¡balanced: ¡

O(logn) ¡

§ If ¡the ¡tree ¡is ¡very ¡

unbalanced: ¡O(n) ¡

October 2004 John Edgar 3

43 61 24 61 12 37 12 24 43 37

balanced ¡BST ¡ height ¡= ¡O(logn) ¡

unbalanced ¡BST ¡ height ¡= ¡O(n) ¡

slide-4
SLIDE 4

¡ Define ¡a ¡balanced ¡binary ¡tree ¡as ¡one ¡where ¡ § There ¡is ¡no ¡path ¡from ¡the ¡root ¡to ¡a ¡leaf* ¡that ¡is ¡more ¡

than ¡twice ¡as ¡long ¡as ¡any ¡other ¡such ¡path ¡

§ The ¡height ¡of ¡such ¡a ¡tree ¡is ¡O(logn) ¡ ¡ Guaranteeing ¡that ¡a ¡BST ¡is ¡balanced ¡requires ¡either ¡ § A ¡more ¡complex ¡structure ¡(2-­‑3 ¡and ¡2-­‑3-­‑4 ¡trees) ¡or ¡ § More ¡complex ¡insertion ¡and ¡deletion ¡algorithms ¡(red-­‑

black ¡trees) ¡

October 2004 John Edgar 4

*definition of leaf on next slide

slide-5
SLIDE 5

¡ A ¡red-­‑black ¡tree ¡is ¡a ¡balanced ¡BST ¡ ¡ Each ¡node ¡has ¡an ¡extra ¡colour ¡field ¡which ¡is ¡

§ red ¡or ¡black ¡

▪ Usually ¡represented ¡as ¡a ¡boolean ¡– ¡isBlack

¡ Nodes ¡have ¡an ¡extra ¡pointer ¡to ¡their ¡parent ¡ Imagine ¡that ¡empty ¡nodes ¡are ¡added ¡so ¡that ¡every ¡

real ¡node ¡has ¡two ¡children ¡

§ They ¡are ¡imaginary ¡nodes ¡so ¡are ¡not ¡allocated ¡space ¡ § The ¡imaginary ¡nodes ¡are ¡always ¡coloured ¡black ¡

October 2004 John Edgar 5

slide-6
SLIDE 6
  • 1. Every ¡node ¡is ¡either ¡red ¡or ¡black ¡
  • 2. Every ¡leaf ¡is ¡black ¡

§

This ¡refers ¡to ¡the ¡imaginary ¡leaves ¡

▪ i.e. ¡every ¡null ¡child ¡of ¡a ¡node ¡is ¡considered ¡to ¡be ¡a ¡black ¡leaf ¡

  • 3. If ¡a ¡node ¡is ¡red ¡both ¡its ¡children ¡must ¡be ¡black ¡
  • 4. Every ¡path ¡from ¡a ¡node ¡to ¡a ¡leaf ¡contains ¡the ¡same ¡

number ¡of ¡black ¡nodes ¡

  • 5. The ¡root ¡is ¡black ¡(mainly ¡for ¡convenience) ¡

October 2004 John Edgar 6

slide-7
SLIDE 7

¡ Perfect ¡trees ¡are ¡perfectly ¡balanced ¡ § But ¡they ¡are ¡inflexible, ¡can ¡only ¡store ¡1, ¡3, ¡7, ¡… ¡

nodes ¡

¡ “Black” ¡nodes ¡form ¡a ¡perfect ¡tree ¡ ¡ “Red” ¡nodes ¡allow ¡flexibility ¡ ¡ Draw ¡some ¡pictures ¡

October 2004 John Edgar 7

slide-8
SLIDE 8

¡ The ¡black ¡height ¡of ¡a ¡node, ¡bh(v), ¡is ¡the ¡number ¡of ¡

black ¡nodes ¡on ¡a ¡path ¡from ¡v ¡to ¡a ¡leaf ¡

§ Without ¡counting ¡v ¡itself ¡ § Because ¡of ¡property ¡4 ¡every ¡path ¡from ¡a ¡node ¡to ¡a ¡leaf ¡

contains ¡the ¡same ¡number ¡of ¡black ¡nodes ¡

¡ The ¡height ¡of ¡a ¡node, ¡h(v), ¡is ¡the ¡number ¡of ¡nodes ¡

  • n ¡the ¡longest ¡path ¡from ¡v ¡to ¡a ¡leaf ¡

§ Without ¡counting ¡v ¡itself ¡ § From ¡property ¡3 ¡a ¡red ¡node’s ¡children ¡must ¡be ¡black ¡ ▪ So ¡h(v) ¡≤ ¡2(bh(v)) ¡

October 2004 John Edgar 8

slide-9
SLIDE 9

¡ It ¡can ¡be ¡shown ¡that ¡a ¡tree ¡with ¡the ¡red-­‑black ¡

structure ¡is ¡balanced ¡

¡ A ¡balanced ¡tree ¡has ¡no ¡path ¡from ¡the ¡root ¡to ¡a ¡leaf ¡that ¡is ¡

more ¡than ¡twice ¡as ¡long ¡as ¡any ¡other ¡such ¡path ¡

¡ Assume ¡that ¡a ¡tree ¡has ¡n ¡internal ¡nodes ¡

§ An ¡internal ¡node ¡is ¡a ¡non-­‑leaf ¡node, ¡and ¡the ¡leaf ¡nodes ¡are ¡

imaginary ¡nodes ¡

§ A ¡red-­‑black ¡tree ¡has ¡≥ ¡2bh ¡– ¡1 ¡internal ¡(real) ¡nodes ¡

▪ Can ¡be ¡proven ¡by ¡induction ¡(e.g. ¡Algorithms, ¡Cormen ¡et ¡al.) ¡

October 2004 John Edgar 9

slide-10
SLIDE 10

¡ Claim: ¡a ¡red-­‑black ¡tree ¡has ¡height, ¡h ¡≤ ¡2*log(n+1) ¡

§ n ¡≥ ¡2bh ¡– ¡1 ¡(see ¡above) ¡ § bh ¡≥ ¡h ¡/ ¡2 ¡(red ¡nodes ¡must ¡have ¡black ¡children) ¡ ¡ § n ¡≥ ¡2h/2 ¡– ¡1 ¡(replace ¡bh ¡with ¡h) ¡ § log(n ¡+ ¡1) ¡≥ ¡h ¡/ ¡2 ¡(add ¡1, ¡log2 ¡of ¡both ¡sides) ¡ § h ¡≤ ¡2*log(n ¡+ ¡1) ¡(multiply ¡both ¡sides ¡by ¡2) ¡

October 2004 John Edgar 10

slide-11
SLIDE 11
slide-12
SLIDE 12

¡ An ¡item ¡must ¡be ¡inserted ¡into ¡a ¡red-­‑black ¡tree ¡at ¡

the ¡correct ¡position ¡

¡ The ¡shape ¡of ¡a ¡tree ¡is ¡determined ¡by ¡

§ The ¡values ¡of ¡the ¡items ¡inserted ¡into ¡the ¡tree ¡ § The ¡order ¡in ¡which ¡those ¡values ¡are ¡inserted ¡

¡ This ¡suggests ¡that ¡there ¡is ¡more ¡than ¡one ¡tree ¡(shape) ¡

that ¡can ¡contain ¡the ¡same ¡values ¡

¡ A ¡tree’s ¡shape ¡can ¡be ¡altered ¡by ¡rotation ¡while ¡still ¡

preserving ¡the ¡bst ¡property ¡

§ Note: ¡only ¡applies ¡to ¡bst ¡with ¡no ¡duplicate ¡keys! ¡

October 2004 John Edgar 12

slide-13
SLIDE 13

October 2004 John Edgar 13

x ¡ y ¡ z ¡ A ¡ D ¡ C ¡ B ¡ Left ¡rotate(x) ¡ z ¡ y ¡ A ¡ D ¡ C ¡ B ¡ x ¡

slide-14
SLIDE 14

October 2004 John Edgar 14

x ¡ y ¡ z ¡ A ¡ D ¡ C ¡ B ¡ z ¡ y ¡ A ¡ D ¡ C ¡ B ¡ Right ¡rotate(z) ¡ x ¡

slide-15
SLIDE 15

October 2004 John Edgar 15

Left ¡rotation ¡of ¡32, ¡call ¡the ¡node ¡x ¡ 47 ¡ 81 ¡ 32 ¡ 13 ¡ 40 ¡ 37 ¡ 44 ¡ Assign ¡a ¡pointer ¡to ¡x's ¡R ¡child ¡ temp ¡

slide-16
SLIDE 16

October 2004 John Edgar 16

47 ¡ 81 ¡ 32 ¡ 13 ¡ 40 ¡ 37 ¡ 44 ¡ temp ¡ Make ¡temp’s ¡L ¡child ¡x’s ¡R ¡child ¡ Detach ¡temp’s ¡L ¡child ¡ Left ¡rotation ¡of ¡32, ¡call ¡the ¡node ¡x ¡ Assign ¡a ¡pointer ¡to ¡x's ¡R ¡child ¡

slide-17
SLIDE 17

October 2004 John Edgar 17

47 ¡ 81 ¡ 32 ¡ 13 ¡ 40 ¡ 37 ¡ 44 ¡ temp ¡ Make ¡x ¡temp's ¡L ¡child ¡ Make ¡temp ¡x's ¡parent's ¡child ¡ Make ¡temp’s ¡L ¡child ¡x’s ¡R ¡child ¡ Detach ¡temp’s ¡L ¡child ¡ Left ¡rotation ¡of ¡32, ¡call ¡the ¡node ¡x ¡ Assign ¡a ¡pointer ¡to ¡x's ¡R ¡child ¡

slide-18
SLIDE 18

October 2004 John Edgar 18

47 ¡ 81 ¡ 40 ¡ 32 ¡ 44 ¡ 13 ¡ 37 ¡ Left ¡rotation ¡of ¡32, ¡call ¡the ¡node ¡x ¡

slide-19
SLIDE 19

October 2004 John Edgar 19

47 ¡ 81 ¡ 32 ¡ 13 ¡ 40 ¡ 7 ¡ 29 ¡ 37 ¡ temp ¡ Right ¡rotation ¡of ¡47, ¡call ¡the ¡node ¡x ¡ Assign ¡a ¡pointer ¡to ¡x's ¡L ¡child ¡

slide-20
SLIDE 20

October 2004 John Edgar 20

47 ¡ 81 ¡ 32 ¡ 13 ¡ 40 ¡ 7 ¡ 29 ¡ 37 ¡ Make ¡temp’s ¡R ¡child ¡x’s ¡L ¡child ¡ Detach ¡temp’s ¡R ¡child ¡ temp ¡ Right ¡rotation ¡of ¡47, ¡call ¡the ¡node ¡x ¡ Assign ¡a ¡pointer ¡to ¡x's ¡L ¡child ¡

slide-21
SLIDE 21

Right ¡rotation ¡of ¡47, ¡call ¡the ¡node ¡x ¡

October 2004 John Edgar 21

47 ¡ 81 ¡ 32 ¡ 13 ¡ 40 ¡ 7 ¡ 29 ¡ 37 ¡ Make ¡x ¡temp's ¡L ¡child ¡ temp ¡ Make ¡temp’s ¡R ¡child ¡x’s ¡L ¡child ¡ Detach ¡temp’s ¡R ¡child ¡ Assign ¡a ¡pointer ¡to ¡x's ¡L ¡child ¡

slide-22
SLIDE 22

October 2004 John Edgar 22

Make ¡temp ¡the ¡new ¡root ¡ temp ¡ 47 ¡ 32 ¡ 13 ¡ 7 ¡ 40 ¡ 29 ¡ 37 ¡ 81 ¡ Right ¡rotation ¡of ¡47, ¡call ¡the ¡node ¡x ¡ Make ¡x ¡temp's ¡L ¡child ¡ Make ¡temp’s ¡R ¡child ¡x’s ¡L ¡child ¡ Detach ¡temp’s ¡R ¡child ¡ Assign ¡a ¡pointer ¡to ¡x's ¡L ¡child ¡

slide-23
SLIDE 23
slide-24
SLIDE 24

¡ Insert ¡as ¡for ¡a ¡binary ¡search ¡tree ¡

§ Make ¡the ¡new ¡node ¡red ¡

October 2004 John Edgar 24

slide-25
SLIDE 25

October 2004 John Edgar 25

Insert ¡65 ¡ 47 ¡ 71 ¡ 32 ¡ 93 ¡

slide-26
SLIDE 26

October 2004 John Edgar 26

Insert ¡65 ¡ 47 ¡ 71 ¡ 32 ¡ 65 ¡ 93 ¡

slide-27
SLIDE 27

¡ Insert ¡as ¡for ¡a ¡binary ¡search ¡tree ¡

§ Make ¡the ¡new ¡node ¡red ¡

¡ What ¡can ¡go ¡wrong? ¡(see ¡slide ¡6) ¡

§ The ¡only ¡property ¡that ¡can ¡be ¡violated ¡is ¡that ¡both ¡a ¡red ¡

node’s ¡children ¡are ¡black ¡(its ¡parent ¡may ¡be ¡red) ¡

¡ So, ¡after ¡inserting, ¡fix ¡the ¡tree ¡by ¡re-­‑colouring ¡nodes ¡

and ¡performing ¡rotations ¡

October 2004 John Edgar 27

slide-28
SLIDE 28

¡ The ¡fixing ¡of ¡the ¡tree ¡remedies ¡the ¡problem ¡

  • f ¡two ¡consecutive ¡red ¡nodes ¡

§ There ¡are ¡a ¡number ¡of ¡cases ¡(that’s ¡what ¡is ¡next) ¡ ¡ It ¡is ¡iterative ¡(or ¡recursive) ¡and ¡pushes ¡this ¡

problem ¡one ¡step ¡up ¡the ¡tree ¡at ¡each ¡step ¡

§ I.e. ¡if ¡the ¡consecutive ¡red ¡nodes ¡are ¡at ¡level ¡d, ¡at ¡

the ¡next ¡step ¡they ¡are ¡at ¡d-­‑1 ¡

§ This ¡is ¡why ¡it ¡turns ¡out ¡to ¡be ¡O(log ¡n) ¡

▪ We ¡won’t ¡go ¡into ¡the ¡analysis ¡

October 2004 John Edgar 28

slide-29
SLIDE 29

¡ Need ¡to ¡fix ¡tree ¡if ¡new ¡node’s ¡parent ¡is ¡red ¡ ¡ Case ¡I ¡for ¡fixing: ¡

¡ If ¡parent ¡and ¡uncle ¡are ¡both ¡red ¡

§ Then ¡colour ¡them ¡black ¡ § And ¡colour ¡the ¡grandparent ¡red ¡

▪ It ¡must ¡have ¡been ¡black ¡beforehand, ¡why? ¡

October 2004 John Edgar 29

slide-30
SLIDE 30

October 2004 John Edgar 30

Insert ¡65 ¡ 47 ¡ 71 ¡ 32 ¡ 65 ¡ 93 ¡ Insert ¡82 ¡

slide-31
SLIDE 31

October 2004 John Edgar 31

82 ¡ 47 ¡ 71 ¡ 32 ¡ 65 ¡ 93 ¡ Insert ¡82 ¡ Insert ¡65 ¡

slide-32
SLIDE 32

71 ¡ 71 ¡ 93 ¡ 93 ¡ 65 ¡ 65 ¡

October 2004 John Edgar 32

82 ¡ 47 ¡ 32 ¡ Insert ¡82 ¡ change ¡nodes’ ¡colours ¡ Insert ¡65 ¡

slide-33
SLIDE 33

¡ Need ¡to ¡fix ¡tree ¡if ¡new ¡node’s ¡parent ¡is ¡red ¡ ¡ Case ¡II ¡for ¡fixing: ¡

¡ If ¡parent ¡is ¡red ¡but ¡uncle ¡is ¡black ¡

§ Need ¡to ¡do ¡some ¡tree ¡rotations ¡to ¡fix ¡it ¡

October 2004 John Edgar 33

slide-34
SLIDE 34

Insert ¡87 ¡

October 2004 John Edgar 34

65 ¡ 93 ¡ 71 ¡ 82 ¡ 47 ¡ 32 ¡ Insert ¡82 ¡ Insert ¡65 ¡

slide-35
SLIDE 35

October 2004 John Edgar 35

93 ¡ 65 ¡ 71 ¡ 82 ¡ 47 ¡ 32 ¡ 87 ¡ Insert ¡87 ¡ Insert ¡82 ¡ Insert ¡65 ¡

slide-36
SLIDE 36

October 2004 John Edgar 36

93 ¡ 65 ¡ 71 ¡ 82 ¡ 47 ¡ 32 ¡ 87 ¡ Insert ¡87 ¡ Insert ¡82 ¡ Insert ¡65 ¡

slide-37
SLIDE 37

October 2004 John Edgar 37

93 ¡ 65 ¡ 71 ¡ 87 ¡ 47 ¡ 32 ¡ 82 ¡ Insert ¡87 ¡ Insert ¡82 ¡ Insert ¡65 ¡

slide-38
SLIDE 38

93 ¡ 93 ¡ 87 ¡ 87 ¡

October ¡2004 ¡ John ¡Edgar ¡ 38 ¡

65 ¡ 47 ¡ 32 ¡ 82 ¡ 71 ¡ change ¡nodes’ ¡colours ¡ Insert ¡87 ¡ Insert ¡82 ¡ Insert ¡65 ¡

slide-39
SLIDE 39

October 2004 John Edgar 39

87 ¡ 93 ¡ 65 ¡ 47 ¡ 32 ¡ 82 ¡ 71 ¡ Insert ¡87 ¡ Insert ¡82 ¡ Insert ¡65 ¡

slide-40
SLIDE 40

¡ Why ¡were ¡these ¡rotations ¡performed? ¡ ¡ First ¡rotation ¡made ¡the ¡two ¡red ¡nodes ¡left ¡

children ¡of ¡their ¡parents ¡

§ This ¡rotation ¡isn’t ¡performed ¡if ¡this ¡is ¡already ¡the ¡

case ¡

§ Note ¡that ¡grandparent ¡must ¡be ¡a ¡black ¡node ¡ ¡ Second ¡rotation ¡and ¡subsequent ¡recolouring ¡

fixes ¡the ¡tree ¡

October 2004 John Edgar 40

slide-41
SLIDE 41

¡ Full ¡details ¡require ¡a ¡few ¡cases ¡ § See ¡link ¡to ¡example ¡code ¡snippets ¡at ¡end ¡ § Understand ¡the ¡application ¡of ¡tree ¡rotations ¡

October 2004 John Edgar 41

slide-42
SLIDE 42
slide-43
SLIDE 43

¡ Red-­‑black ¡trees ¡are ¡balanced ¡binary ¡search ¡

trees ¡

¡ Augment ¡each ¡node ¡with ¡a ¡colour ¡ § Maintaining ¡relationships ¡between ¡node ¡colours ¡

maintains ¡balance ¡of ¡tree ¡

¡ Important ¡operation ¡to ¡understand: ¡rotation ¡ § Modify ¡tree ¡but ¡keep ¡binary ¡search ¡tree ¡property ¡

(ordering ¡of ¡nodes) ¡

October 2004 John Edgar 43

slide-44
SLIDE 44

¡ For ¡implementation ¡details, ¡please ¡see: ¡

http://en.wikipedia.org/wiki/Red-­‑black_tree ¡ (see ¡“Operations”) ¡

October 2004 John Edgar 44