尽管我为我的二进制树执行有序遍历,但为什么先显示我的右子树?
我正在为我的二进制树执行IN_Order遍历,而不是首先显示我的左下树,而是显示我的右子树。 请找到我的错误。
//插入
public void Insert(int data)
{
Node temp=new Node(data);
if(root==null) root=temp;
else
{
Node traverse=root;
Node parent=root;
while( traverse!=null )
{
parent=traverse;
if(traverse.Data > temp.Data) traverse=traverse.Right;
else traverse=traverse.Left;
}
if( parent.Data > temp.Data ) parent.Right=temp;
else parent.Left=temp;
}
}
// inorder traversal
public void display(Node traverse)
{
if(traverse != null)
{
display(traverse.Left);
System.out.print(traverse.Data+"->");
display(traverse.Right);
}
}
应该输出输出:12-> 15-> 18-> 20-> 22-> 25-> 30
I was performing in_order traversal for my binary tree,Instead of displaying my left sub tree first,it's displaying my right sub tree.
Please find my bug.
//Inserting
public void Insert(int data)
{
Node temp=new Node(data);
if(root==null) root=temp;
else
{
Node traverse=root;
Node parent=root;
while( traverse!=null )
{
parent=traverse;
if(traverse.Data > temp.Data) traverse=traverse.Right;
else traverse=traverse.Left;
}
if( parent.Data > temp.Data ) parent.Right=temp;
else parent.Left=temp;
}
}
//Inorder Traversal
public void display(Node traverse)
{
if(traverse != null)
{
display(traverse.Left);
System.out.print(traverse.Data+"->");
display(traverse.Right);
}
}
Output should be: 12->15->18->20->22->25->30
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在
insert
中,此代码中存在一个问题:temp
保存要插入的数据,您在这里存储 LISTER 值 em> right subtree(traverse
)。应该相反。在循环之后,在此代码中发生同样的错误:
In
insert
there is an issue in this code:As
temp
holds the data you want to insert, you are here storing lesser values in the right subtree of a node (traverse
). It should be the opposite.The same mistake occurs after the loop, in this code: