回 帖 发 新 帖 刷新版面

主题:java数据结构问题

public class TreeNode {
        xianlu self = new xianlu();

        TreeNode father = new TreeNode();

        TreeNode child = new TreeNode();

        TreeNode brother = new TreeNode();
}// 树结点结构
这样定义一个类,在调用时会出现,java.lang.StackOverflowError错误,应该怎么弄啊?

回复列表 (共6个回复)

沙发

class A{}里A的实例不能作为类A的字段吧~~~

板凳

1楼正解,这样定义会引起结构无限循环
这和c里struct的成员不能是本struct一样

3 楼

public class TreeNode {
       String linepre = "";
       String linenext = "";
       String lineid = "";
       TreeNode father;
       TreeNode child;
       TreeNode brother;
     public TreeNode()
       {
            father=null;
            child=null;
            brother=null;
        }
}// 树结点结构
对吧?

4 楼

那就这样写吧~~
class TreeNode {
       private String linepre = "";
       private String linenext = "";
       privateString lineid = "";
       //... ...
      //写实现操作的方法
}
public class Test
{

       private TreeNode father;
       private TreeNode child;
       private TreeNode brother;
       public Test()
       {
            father=null;
            child=null;
            brother=null;
        }
        //... ...
       public static void main(String[] args)
       {//... ...}
}// 

5 楼

当然,这里Test的构造函数里,也应该对  三个  关系结点  进行new操作.只写...=null是不够的.不过无法实现操作

6 楼

谢谢了啊

我来回复

您尚未登录,请登录后再回复。点此登录或注册