【发布时间】:2014-12-12 14:15:39
【问题描述】:
如何创建一个函数来返回树中具有两个子节点的节点数?
我的课代码如下:
class RefBinaryTree:
def __init__(self, data, left=None, right=None):
self.key = data
self.left = left
self.right = right
def insert_left(self, value):
self.left = RefBinaryTree(value, left=self.left)
def insert_right(self, value):
self.right = RefBinaryTree(value, right=self.right)
def get_left_subtree(self):
return self.left
def get_right_subtree(self):
return self.right
def set_value(self, new_value):
self.key = new_value
def get_value(self):
return self.key
def create_string(self, indent):
string = str(self.key) + '---+'
if self.left:
string += '\n(l)' + indent + self.left.create_string(indent + ' ')
if self.right:
string += '\n(r)' + indent + self.right.create_string(indent + ' ')
return string
def __str__(self):
return self.create_string(' ')
我猜最好使用递归。任何提示或有用的链接都会很棒。谢谢。
【问题讨论】:
-
只使用递归,你会卡在哪里?
-
寻找一些树遍历算法。递归的很简单。
标签: python recursion binary-tree