Добавить в корзинуПозвонить
Найти в Дзене
Недалёкий разбор

Приближение реализации дерева через класс - Python

Инициализируем класс, корень self.key, левое self.leftChild и правое дерево self.rightChild class BinaryTree:
def __init__(self,rootObj):
self.key = rootObj
self.leftChild = None
self.rightChild = None
Метод вставки элемента в левое дерево: если оно пустое, то создаём в нем новое дерево, если не пуст, то спускаем существующее левое дерево на один уровень ниже.
def insertLeft(self,newNode):
if self.leftChild == None:
self.leftChild = BinaryTree(newNode)
else:
t = BinaryTree(newNode)
t.leftChild = self.leftChild
self.leftChild = t
Аналогично для правого дерева:
def insertRight(self,newNode):
if self.rightChild == None:
self.rightChild = BinaryTree(newNode)
else:
t = BinaryTree(newNode)
t.rightChild = self.rightChild
self.rightChild = t
Метод получения правого дерева:
def getRightChild(self):
return self.rightChi

Инициализируем класс, корень self.key, левое self.leftChild и правое дерево self.rightChild

class BinaryTree:
def __init__(self,rootObj):
self.key = rootObj
self.leftChild = None
self.rightChild = None

Метод вставки элемента в левое дерево: если оно пустое, то создаём в нем новое дерево, если не пуст, то спускаем существующее левое дерево на один уровень ниже.
def insertLeft(self,newNode):
if self.leftChild == None:
self.leftChild = BinaryTree(newNode)
else:
t = BinaryTree(newNode)
t.leftChild = self.leftChild
self.leftChild = t

Аналогично для правого дерева:
def insertRight(self,newNode):
if self.rightChild == None:
self.rightChild = BinaryTree(newNode)
else:
t = BinaryTree(newNode)
t.rightChild = self.rightChild
self.rightChild = t

Метод получения правого дерева:
def getRightChild(self):
return self.rightChild

Метод получения левого дерева:
def getLeftChild(self):
return self.leftChild

Метод установки корня
def setRootVal(self,obj):
self.key = obj

Метод получения значения корня
def getRootVal(self):
return self.key


r = BinaryTree('a')
print(r.getRootVal())
print(r.getLeftChild())
r.insertLeft('b')
print(r.getLeftChild())
print(r.getLeftChild().getRootVal())
r.insertRight('c')
print(r.getRightChild())
print(r.getRightChild().getRootVal())
r.getRightChild().setRootVal('hello')
print(r.getRightChild().getRootVal())

Код взят с книги Брэда Миллер и Дэвид Рэнума - Структура и Алгоритмы