利用泛型写一个简单的链表

简介:

image

--------《设计模式:基于C#的工程化实现及扩展》

 

利用泛型实现简单链表

复制代码
namespace BangWorks.PractcalPattern.Generic
{
    /// <summary>
    /// 泛型链表
    /// </summary>
    public class GenericList<T>
    {
       /// <summary>
        /// 链表中的节点
       /// </summary>
       public class Node
        {
            //一个属性,用来保存数据
            private T _Data;
            //用来保存下一个节点的引用
            public T Data
            {
                get { return _Data; }
                set { _Data = value; }
            }
            
            //利用泛型参数,初始化Node
           public Node(T Data)
            {
                this._Data = Data;
            }
           //用来保存下一个节点
            private Node _NextNode;

            public Node NextNode
            {
                get { return _NextNode; }
                set { _NextNode = value; }
            }
        }
       private Node head;
        public GenericList()
        {
            head = null;
        }

        /// <summary>
        /// 添加到头部的方法
        /// </summary>
        /// <param name="Data">泛型数据</param>
        /// <returns></returns>
        public bool AddHead(T Data)
        {
            Node n = new Node(Data);
            n.NextNode = head;
            head = n;
            return true;
        }
        /// <summary>
        /// 提供一个迭代器,用来遍历所有节点
        /// </summary>
        /// <returns></returns>
        public IEnumerator<T> GetEnumerator()
        {
            Node current = head;

            while (current != null)
            {
                yield return current.Data;
                current = current.NextNode;
            }
        }
    
    }
}
复制代码

 

参考链接:

泛型(C# 编程指南)


作者:kissazi2 
出处:http://www.cnblogs.com/kissazi2/ 
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载:http://www.cnblogs.com/kissazi2/archive/2013/04/02/2995252.html

目录
相关文章
|
传感器 人工智能 自动驾驶
构建未来:利用AI技术优化城市交通系统
【4月更文挑战第27天】 随着城市化的快速发展,交通拥堵已成为全球城市的普遍问题。本文探讨了人工智能(AI)技术在缓解城市交通压力、提升交通效率方面的应用前景。通过分析智能信号控制、交通流量预测、自动驾驶车辆以及公共交通优化等关键技术的实际案例,评估了AI在现代交通系统中的潜力与挑战。本研究不仅展示了AI技术在改善城市交通中的有效性,同时也指出了实施过程中需要克服的技术和社会障碍。
|
网络性能优化 定位技术 C++
跨地区远程访问如何更快、更稳、更可靠:贝锐蒲公英智能选路
贝锐蒲公英云智慧组网采用自研智能选路技术,可根据实时网络状况自动选择最优路径,大幅降低延迟并提升传输速率。相较于传统单线模式下数据必须经由单一服务器转发导致高延迟与无备份线路的问题,蒲公英通过全球分布式节点与SD-WAN技术实现了智能实时导航能力。实测显示,智能选路可使通讯延迟降低5倍、传输速率提升百倍。该技术基于多云服务商的主干网络与FullMesh架构,能自动避开拥堵路径并确保网络可用性,即使面对线路故障也能自动切换,提供更快速、稳定和可靠的跨地区远程访问体验。
400 3
跨地区远程访问如何更快、更稳、更可靠:贝锐蒲公英智能选路
|
10月前
|
Cloud Native Docker 容器
免费Docker镜像服务
近期,一位博友分享了如何利用Cloudfare路由功能实现Docker镜像代理的方法。本文作者则选择了一种更为简便的方式,直接使用道客(DaoCloud)提供的Docker镜像代理服务,该服务已稳定运行半年以上,支持通过添加域名前缀或修改配置文件两种方式使用。
580 4
|
JSON API 开发工具
如何使用Postman 设计和测试一个API?
如何使用Postman 设计和测试一个API?
218 0
如何使用Postman 设计和测试一个API?
|
Linux 数据处理
Linux中的localectl命令:深入了解与应用
`localectl`是Linux中用于管理区域设置的`systemd`工具,涉及日期、时间、货币格式等。它通过修改配置文件调整系统本地化,并确保数据处理工具的正确运行。主要功能包括列出所有区域设置(`list-locales`)、设置主区域(如`set-locale LANG=en_US.UTF-8`)和查看当前状态。使用时注意理解区域设置差异,备份配置,测试设置效果,并保持系统一致性。查阅文档以获取更多操作详情。
|
Ubuntu Linux
Linux查看内核版本
在Linux系统中查看内核版本有多种方法:1) 使用`uname -r`命令直接显示版本号;2) 通过`cat /proc/version`查看内核详细信息;3) 利用`dmesg | grep Linux`显示内核版本行;4) 如果支持,使用`lsb_release -a`查看发行版及内核版本。
496 6
|
人工智能 缓存 前端开发
ai对话---多线程并发处理问题
ai对话---多线程并发处理问题
|
运维 网络协议 Linux
【运维系列】Centos7安装并配置postfix服务
安装CentOS7的Postfix和Dovecot,配置Postfix的`main.cf`文件,包括修改完全域名、允许所有IP、启用邮箱等。然后,配置Dovecot的多个配置文件以启用auth服务和调整相关设置。重启Postfix和Dovecot,设置开机自启,并关闭防火墙进行测试。最后,创建邮箱账户并在Windows邮箱客户端中添加账户设置。
541 0
|
NoSQL Java Linux
【Linux IO多路复用 】 Linux 网络编程 认知负荷与Epoll:高性能I-O多路复用的实现与优化
【Linux IO多路复用 】 Linux 网络编程 认知负荷与Epoll:高性能I-O多路复用的实现与优化
365 0
|
机器学习/深度学习 缓存 测试技术
Nice Trick | 不想标注数据了!有伪标签何必呢,Mixup+Mosaic让DINO方法再继续涨点
Nice Trick | 不想标注数据了!有伪标签何必呢,Mixup+Mosaic让DINO方法再继续涨点
424 0