java中表达式树的有序遍历

java中表达式树的有序遍历,java,tree,expression,inorder,Java,Tree,Expression,Inorder,我创建表达式树的有序遍历,但它没有考虑中间元素。下面是我的代码。你能告诉我我在哪里工作和我错过的代码吗。 e、 g如果表达式树的前缀表示法是*1+23,那么顺序树和偏执树的输出应该是(1+(2*3)),但我得到的是输出(1(23+)* 按顺序向左走,然后访问中间,然后向右走。这里你错过了中间部分 if(root.firstChild!=null) { s=s+"("+printInorder(root.firstChild); } s = s+root.value //

我创建表达式树的有序遍历,但它没有考虑中间元素。下面是我的代码。你能告诉我我在哪里工作和我错过的代码吗。 e、 g如果表达式树的前缀表示法是*1+23,那么顺序树和偏执树的输出应该是(1+(2*3)),但我得到的是输出(1(23+)*


按顺序向左走,然后访问中间,然后向右走。这里你错过了中间部分

if(root.firstChild!=null) {


    s=s+"("+printInorder(root.firstChild);

}     

s = s+root.value //value is whatever stored in node 

if(root.nextSibling!=null) {
    s=s+printInorder(root.nextSibling)+")";

}

大家好,欢迎来到StackOverflow。请花些时间阅读帮助页面,特别是命名和的部分。更重要的是,请阅读。您可能还想了解。对于您的问题-您没有附加“中间元素”,这就是为什么不考虑它的原因。在
if(root.firstChild!=null){…}
if(root.nextSibling!=null){…}
之间的某个地方,您应该处理
root.middleElement
或任何它被调用的内容。
if(root.firstChild!=null) {


    s=s+"("+printInorder(root.firstChild);

}     

s = s+root.value //value is whatever stored in node 

if(root.nextSibling!=null) {
    s=s+printInorder(root.nextSibling)+")";

}