2

我想知道逐级打印二叉树的代码,我的意思是,如果我有这棵树:

    5
   / \
  3   2
 /     \
4       6

我想像这样打印它:5 3 2 4 6.

我知道我需要做树深度方法并且我已经做到了,但我不知道还能做什么。

4

2 回答 2

3

您可以使用级别遍历算法来打印它们。

该算法的工作原理如下:

队列:= <根>

而队列不为空

 v := queue.front

 print v

 foreach s : s is a son of v

    queue.enqueue(s)

 queue.dequeue
于 2012-07-02T02:55:56.990 回答
1

好的,我想我想通了:
1. 扩展类 Node 并添加一个名为 height (int) 的属性
2. 计算树的每个节点的高度(简单的递归函数 - 不需要数据结构)
3. 使用一个for循环,并按顺序遍历每个高度(级别)并打印该级别的节点

于 2012-07-02T03:30:28.337 回答