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());
    }
    }




  • 相关阅读:
    LoadRunner系统资源监视
    Loadrunner web_url函数学习(转贴)
    Chrome的开发者工具(Chrome Developer Tools)
    浏览器对同一域名进行请求的最大并发连接数(转贴)
    转贴---Performance Counter(包含最全的Windows计数器解释)
    去掉html代码中多余琐碎的标签
    你永远不知道什么地方有笔误
    office2016开发者选项在哪?
    [VBA]检测一个中文字符串是否包含在另一个字符串中
    电子发票怎么开
  • 原文地址:https://www.cnblogs.com/yyzq/p/2406527.html
Copyright © 2011-2022 走看看