zoukankan      html  css  js  c++  java
  • 利用泛型写一个简单的链表

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

  • 相关阅读:
    Silverlight Toolkit ListBoxDragDropTarget学习笔记
    函数指针和指针函数(转)
    面试题_反转链表
    C++中的异或运算符^
    面试题_旋转字符串
    面试题_寻找丑数
    模拟一个简单的基于tcp的远程关机程序
    管理指针成员
    赫夫曼树编码问题
    堆的基本操作
  • 原文地址:https://www.cnblogs.com/kissazi2/p/2995252.html
Copyright © 2011-2022 走看看