我在打印二叉树的inOrder遍历时遇到了一些问题。即使在树中插入多个项目后,它只会打印3个项目。Java二叉树。打印InOrder遍历
public class BinaryTree {
private TreeNode root;
private int size;
public BinaryTree(){
this.size = 0;
}
public boolean insert(TreeNode node){
if(root == null)
root = node;
else{
TreeNode parent = null;
TreeNode current = root;
while(current != null){
if(node.getData().getValue().compareTo(current.getData().getValue()) <0){
parent = current;
current = current.getLeft();
}
else if(node.getData().getValue().compareTo(current.getData().getValue()) >0){
parent = current;
current = current.getRight();
}
else
return false;
if(node.getData().getValue().compareTo(parent.getData().getValue()) < 0)
parent.setLeft(node);
else
parent.setRight(node);
}
}
size++;
return true;
}
/**
*
*/
public void inOrder(){
inOrder(root);
}
private void inOrder(TreeNode root){
if(root.getLeft() !=null)
this.inOrder(root.getLeft());
System.out.println(root.getData().getValue());
if(root.getRight() != null)
this.inOrder(root.getRight());
}
}
这功课吗? – 2010-04-24 21:20:22
我想你可以称它为硬件。我正在对二叉树进行测试,而在序列遍历中可能是其中一个问题。我只是想刷新一些东西。 – user69514 2010-04-24 21:23:21
我强烈建议你没有一个方法,当类也有一个字段'root'时,需要一个参数'root'。这使事情变得非常混乱。 – 2010-04-24 21:24:57