设计更高效的树

时间:2015-06-06 16:29:27

标签: java algorithm recursion tree

假设我们有一个基本的二叉树,可以递归搜索:

class BinaryTree{

    private int Element;
    private BinaryTree LeftNode;
    private BinaryTree RightNode;

    //Class Constructors

    //Class Methods

}

我最初学习二叉树和一般树的这种设计主要是因为它简单易用。然而,有人用这种设计讨论过,每次我扩展树,也就是将BinaryTree的实例添加到LeftNode或RightNode时,另一个BinaryTree的实例化也需要保留内存空间来存储BinaryTree类的所有非静态方法。随着树呈指数增长,所需的空间量也将大幅增加。

是否有更有效的方法来实现递归树设计,同时坚持面向对象的范例?

1 个答案:

答案 0 :(得分:2)

你的假设:

  

另一个BinaryTree的实例化也需要保留   用于存储BinaryTree类的所有非静态方法的内存空间。

不正确。

类实例方法不占用类的每个新实例的空间。实例占用的唯一内存空间是其数据。