我做了二叉樹後序遍歷python的遞歸過程。這是代碼。二叉樹後序遍歷的迭代過程
from collections import namedtuple
from sys import stdout
Node = namedtuple('Node', 'data, left, right')
tree = Node(1,
Node(2,
Node(4,
Node(7, None, None),
None),
Node(5, None, None)),
Node(3,
Node(6,
Node(8, None, None),
Node(9, None, None)),
None))
def printwithspace(i):
stdout.write("%i " % i)
def postorder(node, visitor = printwithspace):
if node:
print "%d-->L"%node.data
postorder(node.left, visitor)
print "%d-->R"%node.data
postorder(node.right, visitor)
print "Root--%d"%node.data
else:
print "Null"
stdout.write('\n postorder: ')
postorder(tree)
stdout.write('\n')
現在,我想對PYTHON中的二叉樹後序遍歷做一個迭代過程。有人能幫忙嗎?
在此先感謝。
通常我認爲人們使用訪問堆棧基本上取代母語調用堆棧做反覆迭代時。我個人使用節點中的訪問標誌進行迭代遍歷。所以兩者都可以工作。 –