【问题标题】:Sharing an AVL Tree Between Several Classes在多个类之间共享 AVL 树
【发布时间】:2015-08-08 05:37:09
【问题描述】:

我实现了一个 AVL 树。

所以,假设我有两个类,一个通过不同类型 Apple 的 XML 进行解析,另一个通过不同类型的橙子解析。

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

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

【问题讨论】:

  • 解析器接口在Apples_ParserOrange_Parser 中是什么样的?
  • 你想让同一棵树同时包含苹果和橘子吗?

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


【解决方案1】:

您可以使用包含树实例的辅助类,然后在 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

这样,首先使用的解析器将实例化树,而另一个只是将数据添加到其中。

【讨论】:

  • 谢谢,我想这就是我需要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-11
  • 2012-07-22
  • 1970-01-01
  • 1970-01-01
  • 2012-01-03
  • 1970-01-01
相关资源
最近更新 更多