我在打印二叉樹的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