不好意思本人接触C#不久,实在不知道动态链表怎么实现。现在有项目又急需动态链表,只好来请教各位了
我简化描述一下这个链表,包含两个string字段内容(content,acceptman),然后每个节点有前节点(prenode)和后节点(nextnode)(这节点我不知道要设什么型),每个节点数据是动态插入的,下一条记录的prenode应指向前一条记录的nextnode,也就是从后往前指。
能否请高手帮我写一写简要的代码?非常感谢

解决方案 »

  1.   

    http://www.cnblogs.com/txdlf/articles/308212.html
      

  2.   

    可以用LinkListNode<T>来实现,代码没兴趣写了........
      

  3.   

    public class MyClass
        {
            struct element
            {
                public string content;
                public string acceptman;
            }
            public static void Main()
            {
                element[] elem = new element[3];
                elem[0].acceptman = "1";
                elem[0].content = "a";
                elem[1].acceptman = "2";
                elem[1].content = "b";
                elem[2].acceptman = "3";
                elem[2].content = "c";
                LinkedList<element> list = new LinkedList<element>();
                list.AddFirst(elem[0]);
                list.AddFirst(elem[1]);
                list.AddFirst(elem[2]);
                LinkedListNode<element> node = list.First;
                Console.WriteLine("{0},{1}", node.Value.acceptman, node.Value.content);
                node = node.Next;
                Console.WriteLine("{0},{1}", node.Value.acceptman, node.Value.content);
                node = node.Next;
                Console.WriteLine("{0},{1}", node.Value.acceptman, node.Value.content);
                node = node.Previous;
                Console.WriteLine("{0},{1}", node.Value.acceptman, node.Value.content);
                Console.ReadKey();
            }
        }
      

  4.   

    http://msdn2.microsoft.com/zh-cn/library/he2s3bh7(VS.80).aspxhttp://www.microsoft.com/china/msdn/library/langtool/vcsharp/csharpgenerics.mspx?mfr=true
      

  5.   

    谢谢Fortner() !
    再请教一下,如果要将这个链表的内容存储在SQLServer数据库中应如何操作?
      

  6.   

    1、建立SqlConnection对象,创建连接字符串,打开连接。
    2、建立SqlCommand对象,加入SQL语句,然后用ExecuteNonQuery()方法执行。
      

  7.   

    非常感谢!
    这点我知道
    我是怕这样放进去那么这个链表的拓扑性还存在吗?就是节点的先后问题还会关联吗?是否要在SQL表中设置前后节点字段什么的?
      

  8.   

    是的,建议你在数据库中添加 pre 和 next字段,这样才能和链表顺序保持同步。
      

  9.   

    添加 pre 和 next字段,保存前驱结点与后继结点的关键字
      

  10.   

    是的。。谢谢各位帮助,让我学到很多。马上要结贴了还是得最后问一个问题:用LinkedList的话,在节点struct结构里要不要添加prenode,nextnode这两个指示前后节点的字段呢?
    如果不需要,那么在存储数据库时要如何象impeller(竹子) 所说的保存前驱结点与后继结点的关键字?
      

  11.   

    应该不需要.
    因为LinkedList这个类型本身就有前驱和后继的属性文法.
      

  12.   

    如果content和acceptman都不是主键的话,那在数据库中应该加一个主键字段。毕竟数据库是要求主键的,数据库中pre和next值应该是他前一个值的主键和后一个值的主键。