/// <summary>
/// 节点
/// </summary>
/// <typeparam name="T"></typeparam>
public class LinkedListNode<T>
{
public LinkedListNode(T value)
{
this.Value = value;
}
public T Value { get; private set; }//值
/// <summary>
/// 后一个节点
/// </summary>
public LinkedListNode<T> Next { get; internal set; }
/// <summary>
/// 前一个节点
/// </summary>
public LinkedListNode<T> Prev { get; internal set; }
}
 public class LinkedList<T> : IEnumerable<T>
{
public LinkedListNode<T> First { get; private set; }
public LinkedListNode<T> Last { get; private set; } public LinkedListNode<T> AddLast(T node)
{
var newNode = new LinkedListNode<T>(node);
if(First == null)
{
First = newNode;
Last = First;
}
else
{
LinkedListNode<T> previous = Last;
Last.Next = newNode;
Last = newNode;
Last.Prev = previous;
}
return newNode;
}
public IEnumerator<T> GetEnumerator()
{
LinkedListNode<T> current = First;
while (current!=null)
{
yield return current.Value;
current = current.Next;
}
} IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
 static void Main(string[] args)
{
try
{
Console.WriteLine("**********************LinkedList<int>*********************");
var list1 = new LinkedList<int>();
list1.AddLast();
list1.AddLast();
list1.AddLast();
list1.AddLast();
foreach (var item in list1)
{
Console.WriteLine(item);
}
Console.WriteLine("*********************LinkedList<string>**********************");
var list2 = new LinkedList<string>();
list2.AddLast("");
list2.AddLast("aaaa");
list2.AddLast("bbbbb");
list2.AddLast("cccc");
foreach (var item in list2)
{
Console.WriteLine(item);
}
}
catch (Exception ex)
{
Console.WriteLine("程序出现错误:" + ex.Message);
} Console.ReadKey();
}

最新文章

  1. 【月入41万】Mono For Android中使用百度地图SDK
  2. 【转修正】sql server行版本控制的隔离级别
  3. NSString常用方法
  4. Java 泛型类型的一些限制
  5. java 数据流
  6. GTK简单了解记录
  7. JDK1.8源码(三)——java.lang.String 类
  8. Tips_发送请求时添加一个随机数参数,让浏览器每次都重新发请求到服务器
  9. 如何用python将一个时间序列转化成有监督学习
  10. Redis(1)---五种数据结构
  11. art-template
  12. 开发框架-.Net:Learun(力软敏捷开发)
  13. python中的upper、lower、capitalize、title
  14. js文件中获取${pageContext.request.contextPath}
  15. faker php测试数据库生成
  16. Both - Either - Neither English Grammar
  17. git rm与git rm --cached
  18. Springboot中的连接池
  19. 计蒜客 38229.Distance on the tree-1.树链剖分(边权)+可持久化线段树(区间小于等于k的数的个数)+离散化+离线处理 or 2.树上第k大(主席树)+二分+离散化+在线查询 (The Preliminary Contest for ICPC China Nanchang National Invitational 南昌邀请赛网络赛)
  20. Django实现数据库中表格的增删查改

热门文章

  1. SpaceVim配置中遇到的问题
  2. BZOJ 1050 [HAOI2006]旅行comf(最小生成树)
  3. django 之数据库模块
  4. Linux下库文件的设置 (/usr/bin/ld: cannot find -lxxx 的解决办法)
  5. Maven 编译打包时如何忽略测试用例
  6. IPA打包图片错误问题
  7. 11.怎样自学Struts2之Struts2验证[视频]
  8. CodedUI自己主动化測试及脱离VS独立执行
  9. sass06 mixin
  10. poj_2187凸包,暴力解法