用到了递归,自调用的思想
###先序遍历
def preorder(tree):
if tree:
print(tree.getRootVal())
preorder(tree.getLeftChild())
preorder(tree.getRightChild())
###后序遍历
def postorder(tree):
if tree:
postorder(tree.getLeftChild())
postorder(tree.getRightChild())
print(tree.getRootVal())
###中序遍历
def inorder(tree):
if tree:
inorder(tree.getLeftChild())
print(tree.getRootVal())
inorder(tree.getRightChild())
##层序遍历
def levelorder(tree):
from collections import deque
q = deque()
q.append(tree)
while q:
# deque是一个先进先出的队列
node = q.popleft()
print(node.getRootVal())
if node.getLeftChild():
q.append(node.getLeftChild())
if node.getRightChild():
q.append(node.getRightChild())
return

本文介绍了树数据结构的四种基本遍历方式:先序遍历、中序遍历、后序遍历以及层序遍历,并提供了每种遍历方式的Python实现代码。
2105

被折叠的 条评论
为什么被折叠?



