zoukankan      html  css  js  c++  java
  • 自定义泛型链表类

         (1)自定义泛型链表类。

        public class GenericList<T>
        {
            private class Node
            {
                //当前节点值
                private T data;
                public T Data
                {
                    get { return data; }
                    set { data = value; }
                }
    
                //节点的下一个节点
                private Node next;
                public Node Next
                {
                    get { return next; }
                    set { next = value; }
                }
    
                //节点的上一个节点
                private Node last;
                public Node Last
                {
                    get { return last; }
                    set { last = value; }
                }
    
                public Node(T t)
                {
                    data = t;
                    next = null;
                }
            }
    
            private Node firstNode;
            private Node lastNode;
    
            public void AddNode(T t)
            {
                Node node = new Node(t);
                node.Last = lastNode;
    
                if (lastNode != null)
                    lastNode.Next = node;
    
                lastNode = node;
    
                if (firstNode == null)
                {
                    firstNode = node;
                }
            }
    
            //要在自定义泛型集合上迭代
            //必须实现该接口
            public IEnumerator<T> GetEnumerator()
            {
                Node current = firstNode;
                while (current != null)
                {
                    //yield return表达式以枚举对象返回
                    yield return current.Data;
                    current = current.Next;
                }
            }
        }

            (2)自定义泛型链表类调用。

        class GenericListTestTwo
        {
            static void Main()
            {
                // 类型参数为int
                GenericList<int> list = new GenericList<int>();
                for (int a = 0; a < 5; a++)
                {
                    list.AddNode(a);
                }
                foreach (int i in list)
                {
                    System.Console.WriteLine(i);
                }
    
                //类型参数为string
                GenericList<string> strList = new GenericList<string>();
                strList.AddNode("First Node");
                strList.AddNode("Second Node");
                foreach(string s in strList)
                {
                    System.Console.WriteLine(s);
                }
    
    
                Console.Read();
            }
        }

      输出如下:

  • 相关阅读:
    软件概要设计
    Jmter进行Rabbitmq测试
    分布式锁
    实用异常
    异常集合
    本地Windows环境安装RabbitMQ Server
    MySQL千万级多表关联SQL语句调优
    mysql数据库多表关联查询的慢SQL优化
    rabbitmq详细配置
    Idea连接服务器docker并部署代码到docker实现一键启动
  • 原文地址:https://www.cnblogs.com/wanghonghu/p/2585221.html
Copyright © 2011-2022 走看看