Ahmad Qassym Ответов: 1

Зачем нужен оператор return tree в операторе else ?


class Node:
    def __init__(self,mark,left,right):
        self.mark = mark
        self.left = left
        self.right = right

def leaf(m):
    return Node(m,None,None)



def insert(tree:Node,item)->Node:
    if tree is None:
        return leaf(item)
    elif tree.mark > item:
        return Node(tree.mark,insert(tree.left,item),tree.right)
    elif tree.mark < item:
        return Node(tree.mark,tree.left,insert(tree.right,item))
    else:            ## i mean this line and the following line
        return tree     ##


Что я уже пробовал:

я успешно вставил узлы в дерево, но не знаю необходимости возвращать дерево в операторе else ?

1 Ответов

Рейтинг:
5

Sandeep Mewara

elif tree.mark > item:
    return Node(tree.mark,insert(tree.left,item),tree.right)
elif tree.mark < item:
    return Node(tree.mark,tree.left,insert(tree.right,item))
else:            ## i mean this line and the following line
    return tree     ##

Последняя строка должна убедиться, что если tree.mark == item, то вы ничего не делаете и возвращаетесь как есть.

3 условия:
- Если элемент больше, то вставьте его справа
- Если элемент меньше, то вставьте его влево
- если товар такой же, то не вставляйте и не возвращайте его как есть.

Если вы возьмете пример и попробуете, это поможет.


CPallini

5.