我只是有一個簡單的實現查詢。廣度優先搜索
所以我做一個BST通過使用下面的代碼:
class Node{
int data;
Node left=null;
Node right=null;
Node link=null;
public Node(int d)
{
data=d;
}
public void append(int d)
{
Node n=this;
Node nval=new Node(d);
if(n==null)
{
n.data=d;
}
else
{ boolean done=false;
while(!done)
{
if(n.data<=d)
{
if(n.left==null)
{
n.left=nval;
done=true;
System.out.println("Data Entered "+nval.data);
}
else
{
n=n.left;
}
}
else
if(n.data>d)
{
if(n.right==null)
{
n.right=nval;
done=true;
System.out.println("Data Entered "+nval.data);
}
else
{
n=n.right;
}
}
}
}
}
}
現在,我開始了第一次和它深度優先搜索應用廣度。我在做這件事時遇到了真正的問題。
對於DFS,我必須添加放置在堆棧右側的當前節點的左值和右值?我將如何編程?我在使用鏈接列表時遇到問題?有人能告訴我數據結構或指針應該如何?
BFS發生同樣的事情。如果我以前不清楚,我的主要問題是刪除一個數組元素,然後將其替換爲它的子元素。
'if(n == null){n.data = d; }'你是否試圖得到'NullPointerException'或是這是一個錯字? – ApproachingDarknessFish
@ValekHalfHeart - 不用擔心,在賦值'Node n = this之前有一對行,所以n永遠不能爲null。 –
是的,我剛剛得到了!謝謝! –