【发布时间】:2018-08-04 01:23:42
【问题描述】:
我刚刚实现了我的第一个二叉树:
class BinaryTree:
def __init__(self, obj):
self.key = obj
self.left_c = None
self.right_c = None
def insert_left_c(self, new_node):
if self.left_c == None:
self.left_c = BinaryTree(new_node)
else:
temp = BinaryTree(new_code)
temp.left_c = self.left_c
self.left_c = temp
def insert_right_c(self, new_node):
if self.right_c == None:
self.right_c = BinaryTree(new_node)
else:
temp = BinaryTree(new_code)
temp.right_c = self.right_c
self.right_c = temp
def set_root(self, obj):
self.key = obj
def get_root(self):
return self.key
def get_left_c(self):
return self.left_c
def get_right_c(self):
return self.right_c
我很难理解您实际上是如何按照规范构建树的。例如,我正在尝试构建以下树:
但是,我真的很难理解/可视化您如何构建较低的节点并操纵它们的左/右分支。
虽然我可以做一些事情,例如:
binary_tree = BinaryTree('a')
binary_tree.insert_left_c('b')
binary_tree.insert_right_c('d')
binary_tree.insert_right_c('c')
binary_tree.insert_left_c('e')
binary_tree.insert_right_c('f')
但我意识到这是荒谬的,因为我相信我正在为所有处于同一级别的字母创建一个唯一节点?我从来没有真正将一个人设置为另一个人的孩子(?)。
如果有人能解释应该如何解决这个问题,并可视化类似的问题,我将不胜感激。
【问题讨论】:
标签: python python-3.x data-structures binary-tree