I was trying to creating a red-black tree, and when trying to get data out of it, it always returned the same value, so i decided to try to create a very simple binary search tree, and i got the same result, so i wonder, ¿what i’m doing wrong when trying to create trees in c++? Here is the code: https://pastebin.com/L2yJJ3Nu

  • lawmurray@programming.dev
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    10 months ago

    Your get() function will always just return the value of the root node. I think you mean to have return get(value, …) in each of its if statements.

  • bahbah23@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    10 months ago

    It’s been a while since I did c++.

    Does make_shared make a copy of the object and return a shared pointer to it, or does it read the memory location of the variable passed to it? The node is being created on the stack, which in this simple application will likely always be at the same memory location.

  • DolphinitelyJoe@lemmy.zip
    link
    fedilink
    English
    arrow-up
    2
    ·
    10 months ago

    In the get() function, instead of if{}… if{}… return it should be if{}… else if{}… else {return…}

    • lawmurray@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      10 months ago

      This would be better style in my opinion, but by way of correctness it seems the more fundamental issue is “return” missing in the if… else if… blocks.