在同心圆的二进制树

时间:2016-04-12 01:51:35

标签: algorithm data-structures tree binary-tree

最近我在采访中遇到了一个问题“在同心圆中打印完整的二叉树”。

        1
    2       3
  4   5   6   7
 8 9 0 1 2 3 4 5

输出应为

1 2 4 8 9 0 1 2 3 4 5 7 3
5 6

有谁可以帮我解决这个问题?

1 个答案:

答案 0 :(得分:0)

以下是解决问题的方法。按级别排列树:

1
2, 3
4, 5, 6, 7
8, 9, 0, 1, 2, 3, 4, 5

因此,您拥有的数据为kL1, L2, ..., Lk。现在回答这个问题:在我们执行一个步骤之后,即遍历一个圆圈时,在从水平移除遍历元素之后,树级别将如何显示?我应该如何修改关卡以及我应该打印哪些元素,以便看起来我已经遍历了圈子?

在您的示例中,在第一步之后,级别将被修改为:

5, 6

那么执行的操作是什么?

在您回答问题之后,只需应用相同的程序几次,直到您打印完所有元素。