можно было его изменять, в т. ч. удалить ?
А как мне вернуть null если я элемент не нашел? они не же позволяют
хз, очереди какие-то
private BinaryTreeNode<T> FindNode(int key) { BinaryTreeNode<T> t = root; while (null != t) { if (key == t.Key) { return t; } if (key < t.Key) { t = t.left; } else { t = t.right; } } Console.WriteLine($"Key {key} not found!"); return null; }
Так ну ссылка и вернётся если t - ссылочный тип
тогда по идее если я сделаю BinaryTreeNode<T> t = FindNode(key); t = null; объект удалится?
Откуда удалится, лол?
Ну по идее по ссылке null будет, вместо какого-то осмысленного объекта. Он наверное про это
ну, у меня бинарное дерево, и мне нужна операция удаления элемента. В частном случае, если узел не имеет детей, я его родителю вместо указателя на него ставлю nullptr а сам объект delete nodePtr. Так я это вижу в плюсах
Удаляешь ссылку на ноду и все
Ты в плюсах обнуляешь ссылки а потом удаляешь?)))
ну так у меня может быть вспомогательная ссылка на объект
В с++ чтобы удалить дерево, надо его рекурсивно обойти
Иначе привет утечки
понял, спасибо
Или упороться и сделать бинарное дерево юник_птр"ов
Не надо возвращать Null
ага, дольше интероп будешь писать))000
Обсуждают сегодня