Python实现深度遍历和广度遍历的方法
2019-01-26 00:11
666 查看
深度遍历:
原则:从上到下,从左到右
逻辑(本质用递归):
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递归遍历列表及输出的实现方法
- python实现二叉树以及二叉树的遍历--1(面向对象的方法实现)
- Python数组遍历的简单实现方法小结
- 容易理解的python用队列实现广度优先遍历文件
- Python实现二叉树及遍历方法
- Python实现深度优先遍历和广度优先遍历
- Python实现遍历windows所有窗口并输出窗口标题的方法
- 【算法——Python实现】无权图建模通过广度优先遍历解决问题
- Python递归遍历列表及输出的实现方法
- 在Python中关于使用os模块遍历目录的实现方法
- python 用栈和队列实现二叉树的深度优先遍历(三种)和广度优先遍历
- python实现数据结构图-广度深度遍历
- Java实现利用广度优先遍历(BFS)计算最短路径的方法
- 图的深度遍历和广度遍历(Java实现)
- java 实现图 的深度遍历和广度遍历
- Python实现遍历目录的方法【测试可用】
- Python遍历文件夹和读写文件的实现方法
- python实现在遍历列表时,直接对dict元素增加字段的方法
- 03-python文件(文件夹复制练习)------使用递归遍历,广度遍历(队列),深度遍历(栈)