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

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# 编程指南)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值