java中表达式树的有序遍历
我创建表达式树的有序遍历,但它没有考虑中间元素。下面是我的代码。你能告诉我我在哪里工作和我错过的代码吗。 e、 g如果表达式树的前缀表示法是*1+23,那么顺序树和偏执树的输出应该是(1+(2*3)),但我得到的是输出(1(23+)*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 //
按顺序向左走,然后访问中间,然后向右走。这里你错过了中间部分
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)+")";
}