class tree:
def __init__(self, val):
self.val = val
self.rchild = None
self.lchild = None
#前序遍歷
def before_traversal(tree, li):
if tree:
li.append(tree.val)
before_traversal(tree.lchild, li)
before_traversal(tree.rchild, li)
return
#後序遍歷
def after_traversal(tree, li):
if tree:
after_traversal(tree.lchild, li)
after_traversal(tree.rchild, li)
li.append(tree.val)
return
#中序遍歷
def middle_traversal(tree, li):
if tree:
middle_traversal(tree.lchild, li)
li.append(tree.val)
middle_traversal(tree.rchild, li)
return
#層序遍歷
def layer_traversal(tree, li):
tlp = []
tlp.append(tree)
while tlp:
tlc = []
for i in tlp:
li.append(i.val)
if i.lchild:
tlc.append(i.lchild)
if i.rchild:
tlc.append(i.rchild)
tlp.reverse()
tlp = tlc.copy()
del tlc
return li
python實現樹的四種遍歷方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.