zoukankan      html  css  js  c++  java
  • C#链表

    C#中实现链表,写出来练习下。

    首先实现链表中的节点:

      class LinkListNode
    {
    object value;//节点中存放的数据

    public object Value
    {
    get { return this.value; }
    set { this.value = value; }
    }
    public LinkListNode(object value)
    {
    this.value = value;
    }
    LinkListNode nodeNext;//下一个节点

    internal LinkListNode NodeNext
    {
    get { return nodeNext; }
    set { nodeNext = value; }
    }
    LinkListNode nodePrev;//上一个

    internal LinkListNode NodePrev
    {
    get { return nodePrev; }
    set { nodePrev = value; }
    }
    }

    实现链表

        class LinkList:IEnumerable
    {
    LinkListNode frist;

    internal LinkListNode Frist
    {
    get { return frist; }
    set { frist = value; }
    }
    LinkListNode last;

    internal LinkListNode Last
    {
    get { return last; }
    set { last = value; }
    }

    public LinkListNode AddNode(object node)
    {
    LinkListNode newNode = new LinkListNode(node);
    //如果链表中没有节点,则把新添加的节点标记为链表的第一个元素
    //然后把新增加的节点的指向下一个的属性设为链表中的最后一个元素的标记
    //然后让最后一个和第一个的指向同一个位置
    if (frist == null)
    {
    frist = newNode;
    newNode.NodePrev = last;
    last = frist;
    }
    //如果是链表中有元素,首先把最后一个元素给中间变量TMP
    //然后把最后一个元素的下一个指向新添加的元素
    //接着把链表中最后一个得标记指向新添加的元素
    //最后把新添加的元素的上一个元素指定为中间变量TMP
    else
    {
    LinkListNode tmp = last;
    last.NodeNext = newNode;
    last = newNode;
    newNode.NodePrev = tmp;
    }
    return newNode;
    }

    public IEnumerator GetEnumerator()
    {
    LinkListNode cou = frist;
    while (cou != null)
    {
    yield return cou.Value;
    cou = cou.NodeNext;
    }
    }
    }

    Main方法中来实验下

     static void Main(string[] args)
    {
    LinkList list = new LinkList();
    list.AddNode(1);
    list.AddNode(2);
    list.AddNode(3);
    list.AddNode(4);
    foreach (var i in list)
    {
    Console.WriteLine(i.ToString());
    }
    }




  • 相关阅读:
    语音识别六十年
    神经网络架构PYTORCH-几个概念
    Ubuntu 16.04 系统无法挂载u盘的问题
    技术的止境
    神经网络架构PYTORCH-宏观分析
    Python中parameters与argument区别
    神经网络架构PYTORCH-初相识(3W)
    【ES】学习9-聚合2
    【ES】学习8-聚合1
    【python】中文提取,判断,分词
  • 原文地址:https://www.cnblogs.com/yyzq/p/2406527.html
Copyright © 2011-2022 走看看