从级别订单输入创建二叉树

时间:2014-08-31 19:54:45

标签: java algorithm tree queue binary-tree

我知道这个问题可能以自己的方式微不足道,但我试图从级别顺序输入生成二叉树,然后遍历它以表示树已保存在数据结构中。假如输入是 - [a,s,e,r,t,*,w],它将生成一个二进制树的二进制树 -

                    a
                   / \
                  s   e
                 /\   /\
                r  t *  w

有没有办法实现它,就像从树输入生成二叉树一样。如果有人之前已经遇到过这种问题,请在JAVA中分享某种实现方式,比如使用队列。

1 个答案:

答案 0 :(得分:1)

这是一个粗略的想法,但你可以准确地知道给定级别的范围。

假设当前级别包含从i到i + k的x非*元素,那么下一级别将包含从i + k + 1到i + k + 2x的2x元素,现在在i上使用两个指针,在i上使用另一个指针+ k + 1并从左到右为当前级别的每个非*元素分配两个子元素。

类似地,对于下一级别计数级别包含的元素数量是非*元素的数量。并重复。