class WNode(object):
def __init__(self,w):
self._w=w
self._content=[]
def find(self, x):
if self._w is x:
return self
else:
for i in self._content:
return i.find(x)
return None
嗨。我有麻煩創建一個方法tree.find(self,x),如果x存在(使用遞歸),它返回樹中名稱爲x的節點。我寫的那個似乎只在某些情況下工作(在幾個級別的簡單樹中),但在其他情況下(特別是在較大的樹中),即使存在節點,它也返回None。有人知道如何創建一個返回x節點的工作find(self,x)方法?在Python中查找並返回樹中的節點
@unixer我想搜索節點x。因此,如果它等於self._w(節點的名稱),它將返回節點本身,否則程序將在每個子節點中搜索一個self._w,它等於x遞歸地等於x。但顯然它不起作用 – BamLess 2014-11-22 22:46:22
請添加失敗的插入方法和測試用例。 – blaze 2014-11-22 22:49:57
@blaze我使用一個函數來創建樹。但它不起作用,即使在如下簡單的樹上:r = WNode('1')r._content = [WNode('2'),WNode('3')]。如果我鍵入>> r.find('1'),它將返回根節點,並且與>> r.find('2')相同。但是>> r.find('3')即使r中存在'3'節點也不會返回None – BamLess 2014-11-22 23:01:28