我已經創建了BinarySearch樹,並且在插入鍵和值時遇到了問題。 它說NullPointerException。BinarySearch樹
package BST;
public class Tree
{
public Node root = null;
public void insert(int key, Object obj)
{
Entry entry = new Entry(key,obj);
if(this.root==null)
{
this.root = new Node(entry, null);
}
else
{
insert(entry,this.root); //error
}
}
public void insert(Entry entry, Node temp)
{
if(((Entry) temp.getObj()).getKey() > entry.getKey()) //error
{
if(temp.isLeft())
insert(entry, temp.childLeft());
else
temp.addLeft(entry);
}
else
{
if(temp.isRight())
insert(entry, temp.childRight());
else
temp.addRight(entry);
}
}//insert
public void inorderT()
{
inorderT(this.root);
}
private void inorderT(Node t)
{
if(t.isLeft())
this.inorderT(t.childLeft());
((Entry)t.getObj()).printEntry();
if(t.isRight())
this.inorderT(t.childRight());
}
public void find(int key)
{
System.out.println("키 값이" + key + " 인 엔트리 출력하기");
find(key,root);
}
private void find(int key, Node temp)
{
Entry entry = ((Entry)temp.getObj());
if(entry.getKey()==key)
{
entry.printEntry();
return;
}
if(temp.isLeaf())
{
System.out.println("찾기 실패");
return;
}
if(entry.getKey()==key)
{
find(key, temp.childLeft());
}
else
{
find(key, temp.childRight());
}
}
}
是說//錯誤 是我有問題的句子。 我完全不知道爲什麼它不起作用 順便說一句,我是如此新手在Java語言。所以,不要怪我,如果這是一個愚蠢的問題:)
我會斷點你的調試器中的代碼行,看看哪個表達式爲空,並試圖找出原因。我也會嘗試找到最簡單的測試,在這種情況下,可以更輕鬆地找出出現此錯誤的原因。 –
你知道什麼是空指針異常嗎? –
您在上面的代碼中遇到錯誤的行號? – Ketan