用java实现二叉树数据结构
我试图用java实现一个二叉树数据结构。这是我的密码。我对java非常陌生,不太了解我的错误在哪里。非常感谢。我收到了这个错误消息:binTree.java:21:error:需要类、接口或枚举用java实现二叉树数据结构,java,tree,binary,Java,Tree,Binary,我试图用java实现一个二叉树数据结构。这是我的密码。我对java非常陌生,不太了解我的错误在哪里。非常感谢。我收到了这个错误消息:binTree.java:21:error:需要类、接口或枚举 class Node { int value; Node left; Node right; Node(int value) { this.value = value; right = null; left = null; } } public class BinTree {
class Node {
int value;
Node left;
Node right;
Node(int value) {
this.value = value;
right = null;
left = null;
}
}
public class BinTree {
Node root;
}
private Node addRecursive(Node current, int value) {
if (current == null) {
return new Node(value);
}
if (value < current.value) {
current.left = addRecursive(current.left, value);
} else if (value > current.value) {
current.right = addRecursive(current.right, value);
} else {
// value already exists
return current;
}
return current;
}
public void add(int value) {
root = addRecursive(root, value);
}
System.out.println();
System.out.println("testcase 1:");
BinTree binTree2 = new BinTree();
binTree2.insertNode(new Node(3));
binTree2.insertNode(new Node(201));
binTree2.insertNode(new Node(60));
binTree2.insertNode(new Node(30));
binTree2.insertNode(new Node(45));
binTree2.treeWalk();
类节点{
int值;
左淋巴结;
节点权;
节点(int值){
这个值=值;
右=空;
左=空;
}
}
公共类二叉树{
节根;
}
私有节点addRecursive(节点当前,int值){
如果(当前==null){
返回新节点(值);
}
如果(值<当前值){
current.left=addRecursive(current.left,value);
}else if(值>当前值){
current.right=addRecursive(current.right,value);
}否则{
//值已存在
回流;
}
回流;
}
公共void add(int值){
root=addRecursive(根,值);
}
System.out.println();
System.out.println(“测试用例1”);
BinTree binTree2=新的BinTree();
binTree2.insertNode(新节点(3));
binTree2.insertNode(新节点(201));
binTree2.insertNode(新节点(60));
binTree2.insertNode(新节点(30));
binTree2.insertNode(新节点(45));
binTree2.treeWalk();
您在节点根字段后面的第21行使用了一个右括号,不应该在该行中使用
此外,您还需要一个main方法或Junit tedt用例来启动测试(在底部,在System.out.println()之前启动)您的方法需要放在类BinTree中,您要执行的代码需要包装在一个主函数中,如下所示
public class BinTree {
Node root;
private Node addRecursive(Node current, int value) {
if (current == null) {
return new Node(value);
}
if (value < current.value) {
current.left = addRecursive(current.left, value);
} else if (value > current.value) {
current.right = addRecursive(current.right, value);
} else {
// value already exists
return current;
}
return current;
}
public void add(int value) {
root = addRecursive(root, value);
}
public static void main(String []args){
System.out.println();
System.out.println("testcase 1:");
BinTree binTree2 = new BinTree();
binTree2.insertNode(new Node(3));
binTree2.insertNode(new Node(201));
binTree2.insertNode(new Node(60));
binTree2.insertNode(new Node(30));
binTree2.insertNode(new Node(45));
binTree2.treeWalk();
}
}
公共类二叉树{
节根;
私有节点addRecursive(节点当前,int值){
如果(当前==null){
返回新节点(值);
}
如果(值<当前值){
current.left=addRecursive(current.left,value);
}else if(值>当前值){
current.right=addRecursive(current.right,value);
}否则{
//值已存在
回流;
}
回流;
}
公共void add(int值){
root=addRecursive(根,值);
}
公共静态void main(字符串[]args){
System.out.println();
System.out.println(“测试用例1”);
BinTree binTree2=新的BinTree();
binTree2.insertNode(新节点(3));
binTree2.insertNode(新节点(201));
binTree2.insertNode(新节点(60));
binTree2.insertNode(新节点(30));
binTree2.insertNode(新节点(45));
binTree2.treeWalk();
}
}
看起来您缺少了一些方法,如insertNode和treeWalk,但应该在实现这些方法后进行编译。修复缩进并检查大括号。在Java中,不能在类之外有方法,也不能在方法或初始值设定项块之外有语句!第二个问题:我将如何实施这些方法?这是学校作业吗?