父子关系(链接列表)

时间:2012-11-09 14:36:43

标签: c# linked-list

我正在研究亲子关系。可能的关系是, 节点可以有很多孩子 2.节点可以有多个父节点 节点可以有很多孩子和很多父母

当节点(让我们说孩子)有很多父母并且用户选择删除其中一个父节点时,我们不应该删除特定节点。但只是删除那个父母。

我在C#4.0中使用Dictionary

我们拥有的任何设计模式或任何引用的链接。

请分享。

谢谢

1 个答案:

答案 0 :(得分:1)

如果我不理解你的问题:

  • 你想创建一个n:m关系。
  • 您不想使用级联删除(如果父级将被删除,则不会影响其他节点)

为此,您可以集成一个类。 这是一些代码:

public class Node
{
    public List<Node> Children { get; set; }
    public List<Node> Parents { get; set; }
    public string Name { get; set; } 
    // whatever

    public Node()
    {
        Children = new List<Node>();
        Parents = new List<Node>();
    }
}

List Parents实际上并不是必需的,但是使用它可以更容易地访问父节点(不搜索节点是子节点的节点)。