【发布时间】:2015-09-02 00:52:54
【问题描述】:
我有树类:BinarySearchTree、TreeNode 和 AVLTree。
TreeNode 类用于 BinarySearchTree 类。 AVLTree继承了BinarySearchTree,代码如下:
from Tnode import TreeNode
class BinarySearchTree:
def __init__(self):
self.root = None
self.size = 0
树节点类如下所示:
class TreeNode:
def __init__(self,key,val,left=None,right=None,parent=None):
self.key = key
self.payload = val
self.leftChild = left
self.rightChild = right
self.parent = parent
AVLTree 类:
from Tnode import TreeNode
from binstree import BinarySearchTree
class AVLTree(BinarySearchTree):
def __init__(self,key,val,left=None,right=None,parent=None,balanceFactor=0):
TreeNode.__init__(self,key,val,left,right,parent)
self.balanceFactor = balanceFactor
self.root = None
self.size = 0
每当我运行 AVLTree 类时,我都会收到此错误:AttributeError: TreeNode instance has no attribute 'balanceFactor'
我做错了什么?代码可以在这里查看: http://interactivepython.org/runestone/static/pythonds/Trees/AVLTreeImplementation.html
http://interactivepython.org/runestone/static/pythonds/Trees/SearchTreeImplementation.html
【问题讨论】:
-
你为什么在你的
AVLTree.__init__方法中调用TreeNode.__init__,而你根本没有从TreeNode继承?
标签: python tree binary-search-tree avl-tree