ITPub博客

首页 > Linux操作系统 > Linux操作系统 > C#集合----链表

C#集合----链表

原创 Linux操作系统 作者:iDotNetSpace 时间:2009-05-06 15:07:06 0 删除 编辑

LinkedList集合类没有非泛型集合的类似版本。LinkedList是一个双向链表,其元素指向它前面和后面的元素。
链表的优点是,如果将元素插入列表的中间位置,使用链表会非常快。在插入一个元素时,只需修改上一个元素的Next引用和下一个元素的Previous引用,使它们引用所插入的元素。在List和ArrayList类中,插入一个元素,需要移动该元素后面的所有元素。
当然,链表也有缺点。链表的元素只能一个接一个地访问,这需要较长的时间来查找位于链表中间或尾部的元素。
链表不仅能在列表中存储元素,还可以给每个元素存储下一个元素和上一个元素的信息。这就是
LinkedList包含LinkedListNode类型的元素的原因。使用LinkedListNode 类,可以获得列表中的下一个元素和上一个元素.


 

Code
 1链表测试#region 链表测试
 2/**////


 3/// 链表测试
 4///

 5public class TestLinkedList
 6{
 7  public void TestLinkList()
 8  {
 9    LinkedList bookList = new LinkedList();
10    Book book1 = new Book { Title = "C#高级编程", Book_Author = new Author { Name = "黄老邪", Address = "桃花岛" }, Price = 128f };
11    Book book2 = new Book { Title = "Think in Java", Book_Author = new Author { Name = "欧阳峰", Address = "白驼山" }, Price = 138f };
12    Book book3 = new Book { Title = "silverlight", Book_Author = new Author { Name = "一灯大师", Address = "大理" }, Price = 123f };
13    Book book4 = new Book { Title = "JavaFx", Book_Author = new Author { Name = "洪七公", Address = "临安" }, Price = 125f };
14    Book book5 = new Book { Title = "WPF", Book_Author = new Author { Name = "王重阳", Address = "临安" }, Price = 158f };
15
16    /**////将book1添加到链表第一个元素
17    bookList.AddFirst(book1);
18    /**////将book2添加到链表第一个元素,这时原来的第一个元素会自动退后一位
19    bookList.AddFirst(book2);
20
21    /**////实例化一个LinkedListNode 对象
22    LinkedListNode node = new LinkedListNode(book3);
23
24    /**////将LinkedListNode 对象添加到链表最后
25    bookList.AddLast(node);
26
27    /**////在最后一个元素后追加一个元素
28    bookList.AddAfter(node, book4);
29
30    /**////在LinkedListNode 对象前插入一个元素
31    bookList.AddBefore(node, book5);
32
33    foreach (var item in bookList)
34    {
35      Console.WriteLine(item.Title);
36    }
37
38
39    /**////顺序显示
40    ///
41    Console.WriteLine("\n\n顺序显示链表内的元素");
42    LinkedListNode firstNode = bookList.First;
43    while (firstNode != null)
44    {
45      Console.WriteLine(firstNode.Value.Title);
46      firstNode = firstNode.Next;
47
48    }
49
50    /**////逆序显示
51    Console.WriteLine("\n\n逆序显示链表内的元素");
52    LinkedListNode lastNode = bookList.Last;
53    while (lastNode != null)
54    {
55      Console.WriteLine(lastNode.Value.Title);
56      lastNode = lastNode.Previous;
57    }
58
59
60    Console.WriteLine("\n\n排序后的结果");
61
62    var rderList = bookList.OrderBy(book => book.Price);
63
64    foreach (var item in orderList)
65    {
66      Console.WriteLine(string.Format("图书名称{0},价格{1}", item.Title, item.Price));
67    }
68
69
70  }
71
72}
73
74#endregion
75

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12639172/viewspace-594316/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-01-04

  • 博文量
    2376
  • 访问量
    5329078