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实现树的四种遍历方法
最新推荐文章于 2023-07-17 23:26:42 发布