c#自定义简单链表通过IEnumerable接口,范型实现内部迭代
2010-06-04 19:30
441 查看
/// <summary> /// LinkedListNode<T> 自定义简单链表的节点定义 /// </summary> public class LinkedListNode<T> { //当前节点值 private T _value; public T Value { get { return _value; } } //构造函数 public LinkedListNode(T value) { this._value = value; } //下一个节点 private LinkedListNode<T> _next; public LinkedListNode<T> Next { get { return _next; } internal set { _next = value; } } //当前节点 private LinkedListNode<T> _prev; public LinkedListNode<T> Prev { get { return _prev; } internal set { _prev = value; } } } using System.Collections.Generic; using System; using System.Collections; /// <summary> /// LinkedList<T> 自定义简单链表 /// 为使自定义简单链表实现内部迭代,使之实现IEnumerable接口 /// </summary> public class LinkedList<T> : IEnumerable<T> { //首节点 private LinkedListNode<T> _first; public LinkedListNode<T> First { get { return _first; } } //尾节点 private LinkedListNode<T> _last; public LinkedListNode<T> Last { get { return _last; } } //添加新节点 public void AddLast(T node) { LinkedListNode<T> newNode = new LinkedListNode<T>(node); if (_first == null) { _first = newNode; _last = _first; } else { _last.Next = newNode; _last = newNode; } } //定义IEnumerable接口中的GetEnumerator方法 public IEnumerator<T> GetEnumerator() { LinkedListNode<T> current = _first; while (current != null) { yield return current.Value; current = current.Next; } } /* 饿。。。这个地方暂时没搞明白@-@ */ IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } } /* 调用 ^-^ */ LinkedList<int> list1 = new LinkedList<int>(); list1.AddLast(0); list1.AddLast(1); foreach(int i in list1) { Response.Write(i.ToString()); }
相关文章推荐
- c#自定义简单链表通过IEnumerable接口实现内部迭代
- 使用内部单向链表实现的一个简单堆栈
- 读写锁接口实例-通过ReadWriteLock实现一个简单的缓存
- 使用Oracle数据库实现树形结构表的子-父级迭代(递归)查询和删除,通过级联菜单简单举例
- Jack's Notes5——foreach的本质(通过IEnumerable接口实现遍历)
- 通过junit/TestNG+java简单实现接口的自动化测试
- 使用postgre数据库实现树形结构表的子-父级迭代查询,通过级联菜单简单举例
- 【匿名内部类】通过内部类匿名实现接口
- 前端通过JS将从后端接口返回的大数求和的简单实现
- 接口测试—-中篇,通过django实现一个非常简单的记事本接口
- Structure.Hash(通过数组和链表实现一个简单的Hash)
- C# 通过实现IEnumerable/IEnumerator接口 完成foreach遍历
- 使用postgre数据库实现树形结构表的子-父级迭代查询,通过级联菜单简单举例
- java通过Comparable接口实现字符串比较大小排序的简单实例
- JAVA实现最简单的双向链表、队列与栈(内部使用链表形式存储)
- 组合查询(通过Criteria接口实现动态构造查询条件)
- python通过socket模拟实现简单的ssh功能
- final int seed = 5; 内部匿名类//生成数组,具体生成方式取决于IntArrayProductor接口的匿名实现类
- Java实现局部内部类的简单应用
- 通过Global.asax实现简单的url重写