Examples of deleting nodes from a red-black tree. Code: github.com/msa... Source: Introduction To Algorithms, Third Edition (CLRS) [www.amazon.com...] LinkedIn: / michael-sambol
Argh, good catch @Johann Chu! I meant to flip 23 and 19 from the previous example. Thank you for pointing this out. The process is still the same, but the keys should be switched. 23 is the parent, and 19 is the left child.
I remember, I had watched the RB tree till insertion when I was at college and was just revising this topic. As the insertion example video ended, I thought it's the end. "But here we go again". Thanks 😂😂
You are excellent man.. thanks for these short yet high-value clips... Red-black trees are now clear for me. By any chance you have similar clips for 2-3-4 trees?
Thanks for the explanation. For the transplant function, since you'd like to check whether the 2 variables `u.p.left` and `u` point to the same object, not the value in the object, would it be more appropriate to use `is` syntax than `==` ?
@@MichaelSambol Yeah i saw it, was wondering cause i had an issue with that, and didn't know if ive messed up in the implementation of the tree, or in the sutff around the tree. (I'm implementing a red black tree to recode std::map in c++ for a school project) And i had a recurrent segfaulft down the line in that particular case when both children are NIL : - by passing a NIL in transplant, prog crashes when calling the parent. Anyway if you are interested i've found a way to handle that on geeksforgeeks "fixDoubleBlack" Thx for the answer btw, i sub for that :)
Hi Michael thank you for the efforts and coming back to complete it after 5 years👍👍I watched all of them and they are very friendly to beginner like me👍
I checked your code and there is a line which I don't quite understand. It's about line 155-156: if y.p == z: x.p = y. If I understand it correctly there is no point in setting x.p = y since y is already x's parent. Can you explain it to me? Thanks