Red-black trees in 8 minutes - Deletions

Поделиться
HTML-код
  • Опубликовано: 23 янв 2025

Комментарии • 76

  • @chupiggy
    @chupiggy 2 года назад +34

    3:49, is the 23 misplaced? (Should be the right child of 19?)

    • @MichaelSambol
      @MichaelSambol  2 года назад +18

      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.

    • @chupiggy
      @chupiggy 2 года назад +3

      @@MichaelSambol Got it. Thanks for making these clips man, they are really crystal clear. Thumbs up!

    • @MichaelSambol
      @MichaelSambol  2 года назад +5

      You're welcome! Thanks for the comment. I do my best and i have external review but sometimes I miss, so I appreciate it!

    • @synster693
      @synster693 Год назад

      i was yelling over chathpt and telling him he is making a misstake poor chatgpt lol

  • @aliozgunakyuzstudent7942
    @aliozgunakyuzstudent7942 Год назад +195

    I've been waiting for 5 years to pass the course thx for the video

  • @ryanhill8180
    @ryanhill8180 2 года назад +40

    Bro i just started this playlist today and the fact you took 5 years off 😂😂😂😂 hope you're all good i just find that hilarious. better late than never.

    • @MichaelSambol
      @MichaelSambol  2 года назад +15

      Pathetic, right?! I got lazy. But I'm back!

  • @terrasai2857
    @terrasai2857 Год назад +83

    I’ve waited 5 years just for your video 😂

  • @lin2k4
    @lin2k4 Год назад +23

    Procrastination pays off, I can watch the whole red-black playlist all at once now :D

  • @jian-was-here
    @jian-was-here 9 месяцев назад +5

    5 years late? you're just on time for me! thanks for the video

  • @ejsafara456
    @ejsafara456 Год назад +16

    thank you so much for continuing the red black tree series ^^ its much of help to me :D clear, concise and understandable!

  • @hlibdolinin4404
    @hlibdolinin4404 2 года назад +35

    Just watched the 4 previous video and at the same day 5th video is uploaded 👍

  • @LongTran-tr8sx
    @LongTran-tr8sx 2 года назад +7

    i rearly comment in any type of video but i must say you did a really good job, thanks for your work to help us understand more about programming

  • @amanasati5198
    @amanasati5198 5 месяцев назад +1

    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 😂😂

  • @davidporterrealestate
    @davidporterrealestate 2 года назад +17

    I've been waiting for this

    • @Лев-й7я
      @Лев-й7я Год назад

      Я ждал ето 20 секунд пока реклама шла

  • @jeez123
    @jeez123 9 месяцев назад

    I'm so lucky that you released this now right when i need it

  • @aliciachoi
    @aliciachoi 9 месяцев назад

    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👍

  • @ArisTheMage
    @ArisTheMage 9 месяцев назад

    Hi micheal, yes, better late then never, I was watching this series today, and this video will continue to help me pass my class lol

  • @astrixinthestars1047
    @astrixinthestars1047 10 месяцев назад

    right when we needed him most, he reappeared

  • @Enzoerb
    @Enzoerb 7 месяцев назад +4

    thankfully I am watching this 7 years late

  • @remonataf8960
    @remonataf8960 Год назад +2

    bro casually waited 5 years to continue his masterpiece thank god I started learning red black trees after he finished this playlist

  • @amanbisht579
    @amanbisht579 2 года назад +1

    dude how tf is this channel not discovered by people yet

    • @MichaelSambol
      @MichaelSambol  2 года назад

      slow and steady... thanks for watching!

  • @animeboy9355
    @animeboy9355 Год назад +1

    damn bro literally returned after 5 year

  • @AladdinPersson
    @AladdinPersson 2 года назад +2

    Bro your explanations are top notchh

  • @BigDoke
    @BigDoke 2 года назад +2

    Perfect timing man, I have an exam in 3 days :D

  • @devashishathawale4807
    @devashishathawale4807 Год назад

    The sequel we needed

  • @silasreef5926
    @silasreef5926 2 года назад +1

    4:36 Just wondering, why don't we consider if both children are NIL ?
    if node is black it breaks the tree balance.

    • @MichaelSambol
      @MichaelSambol  2 года назад +1

      If both children are nil, the first case is true. :)
      github.com/msambol/youtube/blob/master/trees/red_black_tree.py#L142

    • @silasreef5926
      @silasreef5926 2 года назад

      ​@@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 :)

  • @Jeshuakrc
    @Jeshuakrc 8 месяцев назад +2

    Previous video: "Today you'll see examples of red-black tree insertion! 😃😁"
    This one: "Better late than never. Even if I am 5 years late 🧔 👴"

  • @user-ug2vw9vb2v
    @user-ug2vw9vb2v Месяц назад

    Thanks for the video! Just a thought - for if none of the children is nil, isn't it easier to exchange the value of the node to be deleted and the minimal of its right subtree, then delete the node that was exchanged? Instead of doing all the pointer manipulation.

  • @yzerjakenavarroza
    @yzerjakenavarroza 8 месяцев назад

    this is so funny T-T I'm shocked with your voice changing

  • @mohitpal1505
    @mohitpal1505 Год назад +1

    Why did you consider NiL to be red in the end???

  • @udaykiran-zb2cd
    @udaykiran-zb2cd Год назад +1

    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?

    • @MichaelSambol
      @MichaelSambol  Год назад +1

      Thank you! I haven't done 2-3-4 trees yet but they're on the list.

  • @Haufenis
    @Haufenis Год назад +1

    Since nil is a black node in the last example, is there not an equal number of black nodes across each path?

  • @saraghosalkar4322
    @saraghosalkar4322 2 года назад +1

    DSA God ! Thank you so much :)

  • @metalalive2006
    @metalalive2006 Год назад +1

    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 `==` ?

  • @Braincain007
    @Braincain007 2 дня назад

    I'm watching the playlist and the voice change hit me like a truck 😂

  • @izydor3344
    @izydor3344 2 года назад

    6:48 You call tansplant and the second argument is null. But this is not covered in by the method's code on 1:35

    • @smoulibabca
      @smoulibabca Год назад

      It is not null, it is NIL node, which is still a node with a parent.

  • @kapt0xa_by
    @kapt0xa_by 6 месяцев назад

    how can i call fixup for deleted node???

    • @MichaelSambol
      @MichaelSambol  6 месяцев назад

      github.com/msambol/dsa/blob/master/trees/red_black_tree.py :)

  • @tauheedakbar3524
    @tauheedakbar3524 2 года назад

    Nice work man thanks

  • @judepope6196
    @judepope6196 6 месяцев назад

    I'm coming for the delete-mixup haha

  • @RockOfGreece
    @RockOfGreece Год назад +1

    what about the case that both children are nill?

    • @MichaelSambol
      @MichaelSambol  Год назад

      this case? github.com/msambol/dsa/blob/master/trees/red_black_tree.py#L182

  • @KrishnaHarshadSaglaniB23CS102
    @KrishnaHarshadSaglaniB23CS102 2 месяца назад

    Thanks this helped a lot

  • @ksaweryhasnik
    @ksaweryhasnik 2 года назад

    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

    • @MichaelSambol
      @MichaelSambol  2 года назад

      It is, but you need to set the pointer :)

    • @ksaweryhasnik
      @ksaweryhasnik 2 года назад

      @@MichaelSambol oh okay, I'll read more about it, thank you for your answer :)

    • @zuzannabozek1238
      @zuzannabozek1238 7 дней назад

      @ksaweryhasnik do you have an answer? It seems like that pointer should be correct already...

    • @ksaweryhasnik
      @ksaweryhasnik 6 дней назад +1

      @@zuzannabozek1238 wyszło na to, że to było w celu spójności drzewa, w tym specyficznym przypadku nie jest potrzebna, bo wszystko jest napisane poprawnie. ale jak zmienisz logikę funkcji transplant i się okaże, że ta logika jest niepoprawna to ta linijka to wychwyci, takie zabezpieczenie.
      ale nie pytaj mnie o więcej bo to było dwa lata temu i ja już tego algorytmu do końca nie pamiętam. xD

    • @zuzannabozek1238
      @zuzannabozek1238 6 дней назад

      @@ksaweryhasnik dzięki ❤️

  • @Team_khabib
    @Team_khabib Год назад +1

    When l created red black tree why i delete node what the fuck 😂😂😂