我只是有一个简单的实现查询。
所以我使用以下代码制作了一个 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 也会发生同样的事情。如果我之前不清楚,我的主要问题是删除一个数组元素,然后用它的子元素替换它。