在几个 类 之间共享一个 AVL 树

Sharing an AVL Tree Between Several Classes

我实现了 AVL 树。

所以,假设我有两个 classes,一个解析 XML 不同类型的苹果,另一个解析不同类型的橙子。

如果我在 Apples_Parser.cs class 中实例化树,我如何使用同一棵树加载不同类型的橙子,这些橙子将从 [=12] 中加载到树中=] class?

这不是作业,我只是概括了问题以使其更容易(还没有提供代码,我不知道从哪里开始)

您可以使用包含树实例的助手 class,然后在 Apple_parserOranges_Parser classes 中使用该实例。

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 class:

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

这样,无论哪个解析器首先使用,都将实例化树,而另一个只向其添加数据。