当前位置:  编程技术>.net/c#/asp.net

c# 自定义泛型链表类的详解

    来源: 互联网  发布时间:2014-10-21

    本文导语:  (1)自定义泛型链表类。 代码如下:public class GenericList    {        private class Node        {            //当前节点值            private T data;            public T Data            {                ...

(1)自定义泛型链表类。
代码如下:

public class GenericList
    {
        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 GetEnumerator()
        {
            Node current = firstNode;
            while (current != null)
            {
                //yield return表达式以枚举对象返回
                yield return current.Data;
                current = current.Next;
            }
        }
    }

 (2)自定义泛型链表类调用。
代码如下:

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

输出如下:


    
 
 

您可能感兴趣的文章:

  • C#实现自定义双击事件
  • 如何实现C#自定义结构的强制转换
  • C#通过反射创建自定义泛型
  • C#自定义控件添加右键菜单的实现代码
  • C#使用yield关键字让自定义集合实现foreach遍历的方法
  • Visual C#类的定义及实现方法实例解析
  • C# Form自定义光标的简单实现
  • C#常用自定义函数小结
  • 提取html中文字 C#自定义函数
  • C# .NET自定义类实现伪静态页面的代码
  • C#学习笔记之用户定义类(或结构)的类型转换
  • c#自定义泛型类的实现
  • 深入解析c#中枚举类型的定义与使用
  • C#定义并实现单链表实例解析
  • C#自定义函数NetxtString生成随机字符串
  • C#中HashTable的定义与使用方法
  • 解决C# winForm自定义鼠标样式的两种实现方法详解
  • C#用户定义类型转换详解
  • C#实现ProperTyGrid自定义属性的方法
  • 解析C#自定义控件的制作与使用实例的详解
  • linux c malloc函数定义及用法详解
  • VC对自定义资源加密解密(AES)的详解
  • HTML 5 <acronym> 标签定义用法详解
  • 基于C中含有if的宏定义详解
  • HTML 5中<address> 标签定义用法详解及几个示例
  • sql server定义联合主键的方法详解
  • 深入ORACLE变量的定义与使用的详解
  • urllib2自定义opener详解
  • 深入mysql创建自定义函数与存储过程的详解
  • Android笔记之:深入为从右向左语言定义复杂字串的详解
  • 深入分析C语言中结构体指针的定义与引用详解
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.awt类radialgradientpaint的类成员方法: getradius定义及介绍
  • 请问可以用宏定义定义一个二维数组吗?
  • java命名空间javax.xml.stream类xmlinputfactory成员方法: seteventallocator定义参考
  • 想修改路径定义,想找到在哪里定义的,应该怎么办?
  • java命名空间java.text接口attributedcharacteriterator的类成员方法: getallattributekeys定义及介绍
  • php定义数组和使用示例(php数组的定义方法)
  • java命名空间java.beans接口propertyeditor的类成员方法: supportscustomeditor定义及介绍
  • 上次问题解决了,原来是extern被重定义了。。。天阿,关键字也可以被重定义。。。。。欢迎接分
  • java命名空间javax.swing类jtextarea的类成员方法: getcolumnwidth定义及介绍
  • 如何定义一个可变参数的自定义函数
  • java命名空间javax.swing类jtextfield的类成员方法: getcolumnwidth定义及介绍
  • 下面的变量我都下了定义,为什么还出现没定义的信息
  • java命名空间javax.swing类actionmap的类成员方法: allkeys定义及介绍
  • oracle异常(预定义异常,自定义异常)应用介绍
  • java命名空间javax.swing类inputmap的类成员方法: allkeys定义及介绍
  • 为什么我在头文件time.h里找不到time_t的定义呢?只有这个定义typedef __time_t time_t;
  • java命名空间javax.rmi.corba接口valuehandler的类成员方法: iscustommarshaled定义及介绍
  • 函数有定义怎么提示没有低能定义的错误呢?
  • java命名空间javax.swing类jcomponent的类成员方法: resetkeyboardactions定义及介绍
  • android自定义控件和自定义回调函数步骤示例
  • java命名空间java.beans接口customizer的类成员方法: setobject定义及介绍
  • 自定义公共类的装载,包的定义


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3