Как я могу удалить узел из BST?
Мне нужен алгоритм, чтобы сделать это в д-схеме.
Как я могу удалить узел из BST?
Мне нужен алгоритм, чтобы сделать это в д-схеме.
Предполагая , что ваше бинарное дерево поиска использует прямую минусы клетку с содержанием только в листах, и если вы работаете на домашнем задании: Вы можете использовать set-car!или set-cdr!изменять содержимое ячейки конса.
Вы в основном бросить BST у вас есть сейчас, и создать новый SANS элемент.
Вы можете сделать это рекурсивно спускаясь по дереву. Если элемент меньше корневой элемент данных, создать BST, чей корень и больше, чем ветвь копируются из того, что у вас есть сейчас, но чей менее чем филиал является результатом рекурсивного вызова.
Это очень похоже на то, как вы добавить узел, но когда вы получите тот, который вы ищете, объединить два BSTs ниже него, и возвращает результат. Есть, конечно, существующие вопросы о том, как сделать это уже.