问题:我们如何逐级显示树节点?你能给我时间和空间有效的解决方案吗?
例子 :
A
/ \
B C
/ \ / \
D E F G
void PrintTree(struct tree *root);
输出: 您必须逐级打印树节点
A
B C
D E F G
问题:我们如何逐级显示树节点?你能给我时间和空间有效的解决方案吗?
例子 :
A
/ \
B C
/ \ / \
D E F G
void PrintTree(struct tree *root);
输出: 您必须逐级打印树节点
A
B C
D E F G
如果你感觉很野蛮,并且想非常简单地思考你所处的水平......
你将需要:
所以,从根开始。
将其子项添加到第一个队列中。
穿过他们,边走边把他们的孩子带到第二个队列。
切换到第二个队列,穿过,将他们的孩子推到第一个队列。
打蜡,脱蜡。
实际上,它只是对同一思想的轻微扩展,即广度优先搜索或扫描,作为一种模式值得考虑,因为它适用于各种数据结构。事实上,几乎任何东西都是一棵树或树,还有一些不是!
这种访问称为广度优先或水平顺序。您可以在此处查看其他信息。
基本上你
这应该可以通过 FIFO 结构轻松实现: