[6] FINISH
This commit is contained in:
parent
608ddb6c48
commit
cd70aa81c6
|
|
@ -41,11 +41,11 @@
|
|||
|
||||
### - Двоичное дерево посика:
|
||||
Сначала ищем узел, который необходимо удалить, а затем действуем в зависимости от ситуации:
|
||||
- 1) У узла нет потомков:
|
||||
- 1 У узла нет потомков:
|
||||
В такой ситуации просто удаляем наш узел(в данном случае лист)
|
||||
- 2) У узла нет потомков справа или слева:
|
||||
- 2 У узла нет потомков справа или слева:
|
||||
Если у узла есть только правые потомки, то на место этого узела помещаем узел, который расположен справа. Аналогично для случая с наличием левых потомков.
|
||||
- 3) Если у узла есть и правые и левые потомки:
|
||||
- 3 Если у узла есть и правые и левые потомки:
|
||||
Находим самый маленький узел в правом поддереве этого узла, то есть идем сначала вправо от узла, а потом только влево, пока не дойдем до значения None.
|
||||
Копируем значения этого наименьшего и подставляем эти данные в узел, который хотим удалить, не меняя значения под ключами left и right, а затем удаляем этот наименьший как описано в пунктах (1) и (2), так как этот узел или будет иметь только потомков вправа или не иметь их вообще
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user