1、什么是深度优先遍历
其实深度优先遍历你可以把它看成是前序遍历,比如对于如下二叉树:
其深度遍历的结果是:1,2,4,8,9,5,3,6,7
2、解题思路
一、采用递归的方式进行遍历。
二、利用栈,先将根入栈,再将根出栈,并将根的右子树,左子树存入栈,按照栈的先进后出规则来实现深度优先遍历。
3、编程实现
class Node():
# 节点类
def __init__(self, data=-1):
self.data = data
self.left = None
self.right = None
class Tree():
# 树类
def __init__(self):
self.root = Node()
def add(self, data):
# 为树加入节点
node = Node(data)
if self.root.data == -1: # 如果树为空,就对根节点赋值
self.root = node
else:
myQueue = []