各位大牛,帮帮忙,感谢!!!!!!!

2018-09-07 11:10:37 +08:00
 GJXxiaoBai
请设计一个算法从上到下逐层打印二叉树的节点数据,同一层从左到右打印,节点数据类型为整型
需求:描述算法,并编写实现代码-----代码尽量用 python,,,java 也可以
4070 次点击
所在节点    Python
24 条回复
ebingtel
2018-09-07 11:18:58 +08:00
关键词:tree 层次遍历……可以搜索了
meik2333
2018-09-07 11:28:07 +08:00
关键词:二叉树的层序遍历、栈
可以搜索了
careofzm
2018-09-07 11:42:05 +08:00
可以使用性质 父节点( n, 索引,n 的大于 0 ) 的子节点 的索引 2*n 和 2*n+1, 可以先把数读到 list 中,在以这个性质读。我就能想到这种方式
RiESA
2018-09-07 11:44:47 +08:00
楼主还是看看 HTAQ 吧
shoumu
2018-09-07 11:47:53 +08:00
面试题还是作业?
xpresslink
2018-09-07 11:57:44 +08:00
这种问题也好意思到这里来问?
百度一下 Python 二叉树 广度优先遍历
zhaogaz
2018-09-07 11:59:38 +08:00
前几天写了个按广度 遍历。不过不是二叉树,是普通的树。
Dori
2018-09-07 12:01:02 +08:00
队列
Dori
2018-09-07 12:10:34 +08:00
@meik2333 不知道是不是你手误,想请教栈实现层序遍历的算法。
ym1ng
2018-09-07 12:12:31 +08:00
嗯 看了一下 lz 的主题列表 block ~
conn4575
2018-09-07 12:41:49 +08:00
不是很常见的广度优先么…
seven2016
2018-09-07 12:59:30 +08:00
二叉树常规题--层次遍历

![]( https://zhimap.com/res/b/1/1533386266929448959.png)

btw,最近怎么这么多水帖...
ayyll
2018-09-07 13:04:27 +08:00
@meik2333 同问 栈+bfs 是先用栈实现队列吗 还是有什么奇淫技巧
dilu
2018-09-07 13:20:38 +08:00
这不就是二叉树的先序遍历吗?
Sylv
2018-09-07 13:23:22 +08:00
作业请自己做。
houskii
2018-09-07 14:21:40 +08:00
看了下 history,完全是无脑伸手党啊...
lieh222
2018-09-07 14:25:33 +08:00
if root is None:
print('')
else:
nodes = [root]
while nodes:
next_nodes = []
for node in nodes:
print(node.val)
branches = [node.left, node.right]
if node.left is not None:
next_nodes.append(node.left)
if node.right is not None:
next_nodes.append(node.right)
nodes = next_nodes

广度优先大概思路,代码不保证可运行
meik2333
2018-09-07 14:35:04 +08:00
@Dori 不好意思,确实是手误了...应该是用队列
meik2333
2018-09-07 14:35:22 +08:00
@ayyll 不好意思手误了...是用队列的...
xgfan
2018-09-07 14:47:11 +08:00
职业伸手党啊。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/487038

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX