作者热门文章
- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Python实现深度遍历和广度遍历的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
深度遍历:
原则:从上到下,从左到右 。
逻辑(本质用递归):
1)、找根节点 。
2)、找根节点的左边 。
3)、找根节点的右边 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
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)
|
广度遍历:
核心:队列+递归 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
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实现深度遍历和广度遍历的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.
原文链接:https://blog.csdn.net/zhaobig/article/details/78649059 。
最后此篇关于Python实现深度遍历和广度遍历的方法的文章就讲到这里了,如果你想了解更多关于Python实现深度遍历和广度遍历的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我是一名优秀的程序员,十分优秀!