随笔 - 224  文章 - 41  trackbacks - 0
<2010年3月>
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910

享受编程

常用链接

留言簿(11)

随笔分类(159)

随笔档案(224)

文章分类(2)

文章档案(4)

经典c++博客

搜索

  •  

最新评论

阅读排行榜

评论排行榜

原文地址:http://blog.csdn.net/lulu_jiang/archive/2010/06/04/5648098.aspx
/// <summary>
/// LinkedListNode 自定义简单链表的节点定义
/// </summary>

public class LinkedListNode
{
    
//当前节点值
    private object _value;
    
public object Value
    
{
        
get return _value; }
    }


    
//构造函数
    public LinkedListNode(object value)
   
{
        
this._value = value;
   }


    
//下一个节点
    private LinkedListNode _next;
    
public LinkedListNode Next
    
{
        
get return _next; }
        
internal set { _next = value; }
    }


    
//当前节点
    private LinkedListNode _prev;
    
public LinkedListNode Prev
    
{
        
get return _prev; }
        
internal set { _prev = value; }
    }

}




using System.Collections;
using System;

/// <summary>
/// LinkedList 自定义简单链表
/// 为使自定义简单链表实现内部迭代,使之实现IEnumerable接口
/// </summary>

public class LinkedList:IEnumerable
{
    
//首节点
    private LinkedListNode _first;
    
public LinkedListNode First
    
{
        
get return _first; }
    }


    
//尾节点
    private LinkedListNode _last;
    
public LinkedListNode Last
    
{
        
get return _last; }
    }


    
//添加新节点
    public void AddLast(object node)
    
{
        LinkedListNode newNode 
= new LinkedListNode(node);

        
if (_first == null)
        
{
            _first 
= newNode;
            _last 
= _first;
        }

        
else
        
{
            _last.Next 
= newNode;
            _last 
= newNode;
        }

    }


    
//定义IEnumerable接口中的GetEnumerator方法
    public IEnumerator GetEnumerator()
    
{
        LinkedListNode current 
= _first;

        
while (current != null)
        
{
            yield 
return current.Value;
            current 
= current.Next;

            
//if (Convert.ToInt32(current.Value) == 1)
            
//{
            
//    yield break;     //停止迭代
            
//}
            
//else
            
//{
            
//    yield return current.Value;    //返回集合的一个元素
            
//    current = current.Next;
            
//}
        }

    }

}



        
/* 调用^-^ */
        LinkedList list1 
= new LinkedList();
        list1.AddLast(
0);
        list1.AddLast(
1);

        
foreach(int i in list1)
        
{
            Response.Write(i.ToString());
        }
posted on 2010-08-22 23:08 漂漂 阅读(425) 评论(0)  编辑 收藏 引用 所属分类: c#开发

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理