繁体   English   中英

C#多路链接列表

[英]C# Multiway Linked List

有没有一种方法可以使C#中的LinkedList指向多个子对象,而不仅仅是一个? 即有没有一种方法可以将其转换为多路链接列表?

您要描述的是图形或树数据结构。 我认为实现此目标的最清晰方法是创建自己的数据结构,例如节点。 您可能需要在这里阅读有关图的更多信息: http : //en.wikipedia.org/wiki/Graph_(abstract_data_type)

您需要创建列表列表:

LinkedList<LinkedList<int>> l = new LinkedList<LinkedList<int>>();

但这取决于您的确切问题。

如果要对要存储的内容进行更多控制,则应创建自己的数据结构并将其存储在列表中:

public class MyNodeData
{
    public MyNodeData()
    {
        Children = new LinkedList<MyNodeData>();
    }

    public MyNodeData(int i, string s)
        : this()
    {
        MyInt = i;
        MyString = s;
    }

    public int MyInt { get; set; }
    public string MyString { get; set; }

    public LinkedList<MyNodeData> Children { get; private set; }
}

这只是一个示例,您可以通过任何所需的名称定义任何类型的任何属性。
然后添加数据:

    LinkedList<MyNodeData> l = new LinkedList<MyNodeData>();

    var d = new MyNodeData();
    d.MyInt = 10;
    d.MyString = "Node message";
    d.Children.AddLast(new MyNodeData(11, "Child 1 message"));
    d.Children.AddLast(new MyNodeData(12, "Child 2 message"));
    l.AddLast(d);

    Console.WriteLine(l.First.Value.MyString);
    Console.WriteLine(l.First.Value.Children.Last.Value.MyInt);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM