我在C
中有一个树形结构Node {
int info;
Node *left;
Node *right;
}
由节点组成的二叉树。现在我想逐层打印树。 例如:
1
2 7
1 8 7 0
我该怎么做?
答案 0 :(得分:1)
您可以简单地使用BFS(广度优先搜索)算法。从root开始将其子项添加到队列。打印root本身。现在对Queue中的 Top 元素执行相同操作。这是一个伪代码
Queue = {root} //Queue Containing Only root in the first place
while (Queue is not empty){
t = Queue.top()
print(t.info)
if (t is not a leaf){
Queue.push(t.left)
Queue.push(t.right)
}
}
如果您想了解更多有关BFS的信息,可以查看以下内容:
https://www.princeton.edu/~achaney/tmve/wiki100k/docs/Breadth-first_search.html