Блог пользователя Kostroma

Автор Kostroma, 12 лет назад, По-русски

Здравствуйте!

Уже в который раз принимаюсь за полезное дело: сдать эту задачу с помощью декартова дерева.

Но меня постоянно преследует проблема. В первом семпле моя программа на первом шаге строит дерево из одной вершины и записывает его в root. Но уже при следующем добавлении вершины происходит нечто: root, который для первой вершины был вполне адекватен, вдруг (а именно, при считывании следующего элемента) становится какой-то рандомной хренью.

Я в упор не могу понять, как и почему это происходит. Буду рад любой помощи.

Код

P.S. Почему-то при наборе поста русские буквы отображаются кракозябрами. В предпросмотре все ок

UPD сдал, вот итоговый код, если кому интересно

  • Проголосовать: нравится
  • +11
  • Проголосовать: не нравится

»
12 лет назад, # |
Rev. 3   Проголосовать: нравится +24 Проголосовать: не нравится

Возможно проблема в строке 132 в функции insert: _node now;. А после этого ты его передаешь по указателю (&now). Нужно учитывать, что после того как у тебя закончится функция insert — now будет уничтожен и указатель ссылающийся на now будет не релевантен. Пример: http://ideone.com/bTEjb

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится

    точно, спасибо :) теперь дерево, похоже, построилось, но пока в другом месте рантайм хватает, сейчас буду смотреть)

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится

    теперь сдал:) спасибо за помощь)