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中使用NLTK库实现对词干的提取的教程
Apr 08 Python
python简单线程和协程学习心得(分享)
Jun 14 Python
python中的计时器timeit的使用方法
Oct 20 Python
python中matplotlib的颜色及线条控制的示例
Mar 16 Python
python 读取目录下csv文件并绘制曲线v111的方法
Jul 06 Python
python实现烟花小程序
Jan 30 Python
如何使用python传入不确定个数参数
Feb 18 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
Apr 16 Python
Spring @Enable模块驱动原理及使用实例
Jun 23 Python
python 如何用urllib与服务端交互(发送和接收数据)
Mar 04 Python
python迷宫问题深度优先遍历实例
Jun 20 Python
python数字类型和占位符详情
Mar 13 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
模仿OSO的论坛(一)
2006/10/09 PHP
PHP读取ACCESS数据到MYSQL的代码
2011/05/11 PHP
PHP实现自动登入google play下载app report的方法
2014/09/23 PHP
php实现图片上传时添加文字和图片水印技巧
2020/04/18 PHP
tp5.1 框架数据库-数据集操作实例分析
2020/05/26 PHP
php实现图片压缩处理
2020/09/09 PHP
用正则获取指定路径文件的名称
2007/02/27 Javascript
JS实现FLASH幻灯片图片切换效果的方法
2015/03/04 Javascript
jQuery实现输入框下拉列表树插件特效代码分享
2015/08/27 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
不间断循环滚动效果的实例代码(必看篇)
2016/10/08 Javascript
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
2016/12/13 Javascript
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
2017/03/23 jQuery
VUE2.0+Element-UI+Echarts封装的组件实例
2018/03/02 Javascript
基于vue2.0实现仿百度前端分页效果附实现代码
2018/10/30 Javascript
利用vue-i18n实现多语言切换效果的方法
2019/06/19 Javascript
微信小程序开发技巧汇总
2019/07/15 Javascript
解决vue scoped scss 无效的问题
2020/09/04 Javascript
使用Python进行稳定可靠的文件操作详解
2013/12/31 Python
Python之eval()函数危险性浅析
2014/07/03 Python
利用Python脚本实现ping百度和google的方法
2017/01/24 Python
jupyter notebook 中输出pyecharts图实例
2020/04/23 Python
python离线安装外部依赖包的实现
2020/02/13 Python
python中逻辑与或(and、or)和按位与或异或(&、|、^)区别
2020/08/05 Python
Python进行统计建模
2020/08/10 Python
Python提取视频中图片的示例(按帧、按秒)
2020/10/22 Python
HTML5的Video标签有部分MP4无法播放的问题解析(多图)
2017/08/18 HTML / CSS
LivingSocial英国:英国本地优惠
2019/02/22 全球购物
正隆泰信息技术有限公司上机题
2012/06/14 面试题
实习生个人找工作的自我评价
2013/10/30 职场文书
单位委托书
2014/10/15 职场文书
基层党支部整改方案
2014/10/25 职场文书
2016年春节慰问信息
2015/03/25 职场文书
中学教师教学工作总结
2015/08/13 职场文书
承诺书怎么写 ?
2019/04/16 职场文书
Oracle配置dblink访问PostgreSQL的操作方法
2022/03/21 PostgreSQL