在多个类之间共享AVL树

时间:2015-08-08 05:37:09

标签: c# tree binary-tree binary-search-tree avl-tree

我实现了一个AVL树。

所以,让我们说我有两个类,一个用不同类型的苹果解析XML,另一个用不同类型的橘子解析。

如果我在Apples_Parser.cs类中实例化树,我怎样才能使用同一棵树加载从Oranges_Parser.cs类加载到树中的不同类型的橙子?

这不是家庭作业,我只是简化了问题,使其更容易(没有提供代码,我不知道从哪里开始)

1 个答案:

答案 0 :(得分:0)

您可以使用包含树实例的帮助程序类,然后在Apple_parserOranges_Parser类中使用该实例。

public static class AvlFactory
{
     private static AvlTree _avlTree;
     public static AvlTree AvlTree{ get {return _avlTree; }}
     public static void InitializeTree()
     {
         _avlTree = new AvlTree();
     }
}

然后在Apples_PraserOranges_Praser类:

if(AvlFactory.AvlTree == null)
{
    AvlFactory.InitializeTree();
}
//Codes to load data to the tree

通过这种方式,首先使用的解析器将实例化树,而另一个只是向其添加数据。