问题:如何逐层显示树节点?。你能给我一个节省时间和空间的解决方案吗?
示例:
A
/ \
B C
/ \ / \
D E F G
void PrintTree(struct tree *root);
输出: 你必须逐级打印树节点
A
B C
D E F G
最佳答案
如果你感觉很野蛮,想简单地思考一下你所处的水平......
您将需要:
- 两个队列
- Jack 的方法略有不同
所以,从 root 开始。
将它的 child 加入第一个队列。
穿过它们,边走边将它们的 child 放到第二个队列中。
切换到第二个队列,单步执行,将他们的 child 推到第一个队列。
上蜡,脱蜡。
实际上,这只是同一思想的轻微扩展,广度优先搜索或扫描,值得将其作为一种模式来思考,因为它适用于各种数据结构。事实上,几乎任何东西都是树或树,还有一些不是!
关于c - 在树型数据结构中,逐级显示树节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4270820/