当前位置: 移动技术网 > IT编程>脚本编程>Python > Python实现深度遍历和广度遍历的方法

Python实现深度遍历和广度遍历的方法

2019年03月21日  | 移动技术网IT编程  | 我要评论

吴艳,职业素质与能力,北京消防检测

深度遍历:

原则:从上到下,从左到右

逻辑(本质用递归):

1)、找根节点

2)、找根节点的左边

3)、找根节点的右边

class node(object):
 def __init__(self, item=none, left=none, right=none):
  self.item = item
  self.left = left
  self.right = right
 
 
d = node("d")
e = node("e")
b = node("b", d, e)
f = node("f")
g = node("g")
c = node("c", f, g)
a = node("a", b, c)
 
 
result = []
 
 
def deep_search(root):
 # 深度遍历 核心:递归
 result.append(root.item)
 if root.left:
  deep_search(root.left)
 if root.right:
  deep_search(root.right)
 return "-->".join(result)
 
 
print deep_search(a)

广度遍历:

核心:队列+递归

def wide_search(root, result=[]):
 
 if not result:
  result.append(root.item)
 if root.left:
  result.append(root.left.item)
 if root.right:
  result.append(root.right.item)
 if root.left:
  wide_search(root.left)
 if root.right:
  wide_search(root.right)
 return "-->".join(result)
 
 
print wide_search(a)

以上这篇python实现深度遍历和广度遍历的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网