【发布时间】:2016-03-28 22:34:02
【问题描述】:
我正在构建一个由内部节点(由 Inner 类表示)和叶节点(由 Node 类表示)组成的 Tree 类。
class Node(object):
def __init__(self,bits,data):
self.bits = bits
self.data = data
class Inner(object):
def __init__(self):
self.bits = ''
self.c0 = None
self.c1 = None
class Tree(object):
def __init__(self):
self.root = None
def insert_Item(self,key,datastr):
#code goes here
我可以使用插入方法插入叶子和内部节点。
t = Tree()
t.insert('1111', 'A')
t.insert('1110', 'B')
问题出现在插入方法的递归公式中。假设 self.root.c0 和 self.root.c1 指向内部节点,我无法调用 self.root.c0.insert() 或 self.root.c1.insert()。这是因为Inner类没有插入功能。
如何使插入方法以递归方式在所有三个类上工作?同样,我无法进行树遍历,因为我得到内部对象没有属性“数据”的错误
【问题讨论】:
-
为什么不做一个父类,让它们都继承自并实现insert方法呢?
-
叶子只是一个没有子节点的节点。为什么需要一个完全独立的类来识别它?
-
@solarc 方便你放一个类的骨架吗
-
@cricket_007。这是因为这个疯狂的规范stackoverflow.com/questions/36166004/…
-
哦,我明白了。是的,我完全不会错过复杂的二叉树问题。
标签: python recursion data-structures binary-tree