private TwoWayLinkList <int> GetFullList() { var list = new TwoWayLinkList <int>(-1); for (int i = 0; i < 5; i++) { list.Add(i); } return(list); }
public static TwoWayLinkList <T> ToTwoWayLinkList <T>(this T[] array) { var list = new TwoWayLinkList <T>(); foreach (var item in array) { list.Add(item); } return(list); }
/// <summary> /// 双向链表 测试 /// </summary> private static void TwoWayLinkListTest() { TwoWayLinkList <Student> list = new TwoWayLinkList <Student>(); for (int i = 0; i < 1; i++) { list.insert(new Student() { cardID = i, name = "sun" + i }); } list.insert(0, new Student() { cardID = 124, name = "sun" + 124 }); Console.WriteLine("LinkList Length: " + list.length()); Student stuFirst = list.getFirst(); Console.WriteLine("First index : " + stuFirst.cardID); Student stuLast = list.getLast(); Console.WriteLine("Last index : " + stuLast.cardID); Console.WriteLine(); int index = 1; Student stu = list.get(index); Console.WriteLine(index + " index : " + stu.cardID); Console.WriteLine(); Stopwatch sw = new Stopwatch(); sw.Start(); IEnumerator tor = list.GetEnumerator(); while (tor.MoveNext()) { if (tor.Current is Student) { Student s = tor.Current as Student; Console.WriteLine("cardID: " + s.cardID); } else { Console.WriteLine("LinkList GetEnumerator is null."); } } sw.Stop(); Console.WriteLine("LinkList Total Time: " + sw.ElapsedMilliseconds + "ms"); }