Используйте эту функцию для достижения желаемого узла:
му я пытаюсь реализовать двоичную кучу мин. Я понимаю, что влечет двоичная минимальная куча с точки зрения ее структуры и ее свойств. Однако я пытаюсь реализовать стену, используя указатели и узлы.
Я используюNode
, у которого естьright/left and pointers
, int element
а такжеparent pointer
, У меня также естьLastNode
в месте, которое указывает на последний вставленный узел.
Моя ссора в том, что я не знаю, что делать, когда я вставляю элемент в терминах последнего узла. Вот что я имею в виду.
Шаг 1.) Предположим, что куча пуста, поэтому вы создаетеroot
а именно х, где х содержит элемент, и вы установитеroot.left/right = null
а такжеLastNode = root.left
.
X
/ \
0 0
Это та часть, где я застрял. Я знаю, что когда вы создаете другой узел для хранения другого элемента, он будет находиться слева от X или там, куда указывает LastNode. Мои вопросы, что мне делать дальше с LastNode, я указываю это на x.right? Я пытаюсь сохранитьinsert(int x)
работает в logN, и манипуляция lastNode будет становиться все длиннее и интенсивнее на каждом уровне.
Может кто-нибудь сломать это? Спасибо