我想制作一个二叉树,但对我来说,我甚至无法在树中插入一个整数值,这很遗憾。问题是我创建了一个类datatype
,其中插入了三个属性。它们是:static datatype left
,static datatype right
,static int value
。
我创建了一个类作为用户定义的数据类型:
public class datatype
{
static datatype left,right;
static int value=0;
}
我的二叉树类是:
datatype root,parent,node;
public int insert(int data)
{
node.value=data; //using debugger found, node.value remain null even
node.left=null; // after insertion of data into it.....That's my
node.right=null; // problem
try{
if(root==null)
root=node;
else
{
parent=root;
insert(node);
}
parent=root;
return 1;
}
catch(Exception e)
{
return 0;
}
}
private void insert(datatype node)
{
if(node.value<=parent.value)
{
if(parent.left==null)
{
parent.left=node;
return;
}
else
{
parent=parent.left;
insert(parent);
}
}
else
{
if(parent.right==null)
{
parent.right=node;
return;
}
else
{
parent=parent.right;
insert(parent);
}
}
}
答案 0 :(得分:0)
不要将实例字段保持在dataType
静态,因为每个节点都需要自己的left
,right
和value
。实例字段永远不应该是静态的。
如果您想要使用用户定义的类型,请阅读泛型类型(例如:https://docs.oracle.com/javase/tutorial/java/generics/types.html)。
另外,请阅读有关如何以及为何使用静态字段的信息:https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html