在几个 类 之间共享一个 AVL 树
Sharing an AVL Tree Between Several Classes
我实现了 AVL 树。
所以,假设我有两个 classes,一个解析 XML 不同类型的苹果,另一个解析不同类型的橙子。
如果我在 Apples_Parser.cs
class 中实例化树,我如何使用同一棵树加载不同类型的橙子,这些橙子将从 [=12] 中加载到树中=] class?
这不是作业,我只是概括了问题以使其更容易(还没有提供代码,我不知道从哪里开始)
您可以使用包含树实例的助手 class,然后在 Apple_parser
和 Oranges_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_Praser
或 Oranges_Praser
class:
if(AvlFactory.AvlTree == null)
{
AvlFactory.InitializeTree();
}
//Codes to load data to the tree
这样,无论哪个解析器首先使用,都将实例化树,而另一个只向其添加数据。
我实现了 AVL 树。
所以,假设我有两个 classes,一个解析 XML 不同类型的苹果,另一个解析不同类型的橙子。
如果我在 Apples_Parser.cs
class 中实例化树,我如何使用同一棵树加载不同类型的橙子,这些橙子将从 [=12] 中加载到树中=] class?
这不是作业,我只是概括了问题以使其更容易(还没有提供代码,我不知道从哪里开始)
您可以使用包含树实例的助手 class,然后在 Apple_parser
和 Oranges_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_Praser
或 Oranges_Praser
class:
if(AvlFactory.AvlTree == null)
{
AvlFactory.InitializeTree();
}
//Codes to load data to the tree
这样,无论哪个解析器首先使用,都将实例化树,而另一个只向其添加数据。