0
有一個關於二叉樹類的例子。二叉樹搜索類
首先我定義類樹。
>>> class Tree(object):
>>> def __init__(self, data=None, left=None, right=None):
>>> self.data = data
>>> self.left = left
>>> self.right = right
>>> def inorder(self):
>>> if self.left:
>>> for x in self.left.inorder():
>>> yield x
>>> yield self
>>> if self.right:
>>> for x in self.right.inorder():
>>> yield x
>>> def __iter__(self):
>>> return self.inorder()
>>> def __repr__(self, level=0, indent=" "):
>>> s = level*indent + `self.data`
>>> if self.left:
>>> s = s + "\n" + self.left.__repr__(level+1, indent) # *** Right this point ***
>>> if self.right:
>>> s = s + "\n" + self.right.__repr__(level+1, indent)
>>> return s
然後定義函數 「樹」
>>> def tree(List):
>>> n = len(List)
>>> if n == 0:
>>> return None
>>> i = n/2
>>> return Tree(List[i], tree(List[:i]), tree(List[i+1:]))
最後打印二叉樹
>>> t = tree('abcdef')
>>> print t
而且結果出來像下面。
'd'
'b'
'a'
'c'
'f'
'e'
,問題是爲什麼不將「自我」爲再版方法,其中i表示。
self.left是一個實例,它可以使'self'不可以放入_method中嗎?
在此先感謝:)