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


Posted in Python onJanuary 22, 2019

深度遍历:

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

逻辑(本质用递归):

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实现深度遍历和广度遍历的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python调用短信猫控件实现发短信功能实例
Jul 04 Python
Python中获取网页状态码的两个方法
Nov 03 Python
Python脚本实现格式化css文件
Apr 08 Python
python中类和实例如何绑定属性与方法示例详解
Aug 18 Python
Python生成短uuid的方法实例详解
May 29 Python
Python实现数据结构线性链表(单链表)算法示例
May 04 Python
Python调用C语言的实现
Jul 26 Python
Python学习笔记之字符串和字符串方法实例详解
Aug 22 Python
如何在Win10系统使用Python3连接Hive
Oct 15 Python
如何在pycharm中安装第三方包
Oct 27 Python
Pycharm配置autopep8实现流程解析
Nov 28 Python
学点简单的Django之第一个Django程序的实现
Feb 24 Python
Python遍历文件夹 处理json文件的方法
Jan 22 #Python
Python多线程原理与用法实例剖析
Jan 22 #Python
python解析含有重复key的json方法
Jan 22 #Python
Python设计模式之简单工厂模式实例详解
Jan 22 #Python
对python字典过滤条件的实例详解
Jan 22 #Python
python实现淘宝秒杀脚本
Jun 23 #Python
python实现网页自动签到功能
Jan 21 #Python
You might like
使用 eAccelerator加速PHP代码的目的
2007/03/16 PHP
yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
2016/04/20 PHP
thinkPHP和onethink微信支付插件分享
2019/08/11 PHP
JavaScript 学习笔记(七)字符串的连接
2009/12/31 Javascript
解决jQuery动态获取手机屏幕高和宽的问题
2014/05/07 Javascript
javascript数组去重方法终极总结
2014/06/05 Javascript
jQuery学习笔记之创建DOM元素
2015/01/19 Javascript
浅谈setTimeout 与 setInterval
2015/06/23 Javascript
JavaScript的Vue.js库入门学习教程
2016/05/23 Javascript
Vue.js组件使用开发实例教程
2016/11/01 Javascript
微信小程序 ecshop地址三级联动实现实例代码
2017/02/28 Javascript
javascript编写简易计算器
2017/05/06 Javascript
详解webpack性能优化——DLL
2017/10/20 Javascript
JavaScript多线程运行库Nexus.js详解
2017/12/22 Javascript
基于vue打包后字体和图片资源失效问题的解决方法
2018/03/06 Javascript
灵活使用console让js调试更简单的方法步骤
2019/04/23 Javascript
解决node终端下运行js文件不支持ES6语法
2020/04/04 Javascript
javascript实现支付宝滑块验证码效果
2020/07/24 Javascript
实例讲解python中的协程
2018/10/08 Python
python使用wxpy实现微信消息防撤回脚本
2019/04/29 Python
解决Python正则表达式匹配反斜杠''\''问题
2019/07/17 Python
详解使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
2020/04/01 Python
python TCP包注入方式
2020/05/05 Python
python开发前景如何
2020/06/11 Python
如何用H5实现一个触屏版的轮播器的实例
2017/01/09 HTML / CSS
ghd官网:英国ghd直发器品牌
2018/05/04 全球购物
美国瑜伽服装和装备购物网站:Mukha Yoga
2019/02/22 全球购物
几道数据库的面试题或笔试题
2014/05/31 面试题
财务会计专业推荐信
2013/11/30 职场文书
优秀员工年终发言演讲稿
2014/01/01 职场文书
环保志愿者活动总结
2014/06/27 职场文书
优秀毕业生的求职信
2014/07/21 职场文书
工作时间调整通知
2015/04/24 职场文书
活动简报范文
2015/07/22 职场文书
二十年同学聚会致辞
2015/07/28 职场文书
Nginx配置SSL证书出错解决方案
2021/03/31 Servers