28
self.left = None
self.key = key
Зададим начальные значения узлов.
root = TreeItem(200)
root.left=TreeItem(42)
root.right=TreeItem(420)
Опишем
функцию
insertItem
добавления элемента в дерево. Это
сделать можно, только найдя его место. Для этого нам потребуется функция
поиска элемента в дереве. Для удобства
добавим комментарий о том, справа
или слева от какого узла помещен новый элемент.
def insertItem(inp):
global root
if root:
curItem = root
#Поиск нужного места и
вставка нового элемента
while not curItem == None and not curItem.key == inp:
if curItem.key > inp:
if curItem.left == None or curItem.left.key ==
None:
print("Помещаем слева от
"+str(curItem.key))
curItem.left = TreeItem(inp)
break
else:
#Переход влево
curItem = curItem.left
elif curItem.right == None:
print("Помещаем справа от " + str(curItem.key))
curItem.right = TreeItem(inp)
break
else:
if curItem.right == None or curItem.right.key
== None:
print("Помещаем справа от " +
str(curItem.key))
curItem.right = TreeItem(inp)
break
else:
#Переход вправо
curItem = curItem.right
else:
root = TreeItem(inp)