如何从字符串java填充二叉树

时间:2009-10-15 21:58:43

标签: java binary-tree

我想用基于这样的字符串填充带有整数的二叉树。

 [int](LT)(RT)

LT是树的左侧部分的相同形式的表达式。与RT相同。有效的字符串将是这样的:4(2(1)(3))(6(5)(7)。我怎么能填这棵树?这不是任何类型的排序树。所以它可以用节点填充每个“级别”。谢谢你的帮助。

3 个答案:

答案 0 :(得分:2)

您必须为此创建解析器,并使用解析器中的指令填充某种数据结构。

然后当你的数据结构被填满时,你只需将它推入树中。

有些事情:

 Structure s = Parser.parse("4(2(1)(3))(6(5)(7)");

然后迭代结构。

  Tree binaryTree = ...

  for( Instruction i : s ) {

      if( i.leaf == Tree.LEFT ) {
          tree.addLeft( i.value );
      } else if ( i.leaf == Tree.RIGHT ) {
           tree.addRight( i.value );
      }
  }

答案 1 :(得分:0)

抓取字符串的第一个数字,拆分为'(',去掉尾随')',递归重复。

答案 2 :(得分:0)

使用堆栈跟踪'('和')'

将所有'('置于堆叠中并在遇到'时弹出')'。

从那里,你只需要决定如何解释你自己之间的东西。