C#集合----連結串列
LinkedList
連結串列的優點是,如果將元素插入列表的中間位置,使用連結串列會非常快。在插入一個元素時,只需修改上一個元素的Next引用和下一個元素的Previous引用,使它們引用所插入的元素。在List
當然,連結串列也有缺點。連結串列的元素只能一個接一個地訪問,這需要較長的時間來查詢位於連結串列中間或尾部的元素。
連結串列不僅能在列表中儲存元素,還可以給每個元素儲存下一個元素和上一個元素的資訊。這就是
LinkedList
Code
1連結串列測試#region 連結串列測試
2/**////
3/// 連結串列測試
4///
5public class TestLinkedList
6{
7 public void TestLinkList()
8 {
9 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
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
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
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C#實現連結串列C#
- C#資料結構-靜態連結串列C#資料結構
- 連結串列-雙向連結串列
- 連結串列-迴圈連結串列
- 連結串列面試題(二)---連結串列逆序(連結串列反轉)面試題
- 【c# .net】雙向連結串列( LinkedList )C#
- 連結串列4: 迴圈連結串列
- 連結串列-單連結串列實現
- 連結串列入門與插入連結串列
- (連結串列)連結串列的排序問題排序
- C#資料結構篇(一連結串列類) (轉)C#資料結構
- 連結串列
- javascript中的連結串列結構—雙向連結串列JavaScript
- Leetcode_86_分割連結串列_連結串列LeetCode
- 【LeetCode】->連結串列->通向連結串列自由之路LeetCode
- php連結串列PHP
- 連結串列操作
- 連結串列逆序
- 2、連結串列
- 【圖解連結串列類面試題】移除連結串列元素圖解面試題
- 【圖解連結串列類面試題】環形連結串列圖解面試題
- 連結串列以及golang介入式連結串列的實現Golang
- Linux核心連結串列-通用連結串列的實現Linux
- 資料結構-單連結串列、雙連結串列資料結構
- 反轉連結串列、合併連結串列、樹的子結構
- 資料結構與演算法——連結串列 Linked List(單連結串列、雙向連結串列、單向環形連結串列-Josephu 問題)資料結構演算法
- Java集合原始碼分析之基礎(一):陣列與連結串列Java原始碼陣列
- 【LeetCode-連結串列】面試題-反轉連結串列LeetCode面試題
- 連結串列專題——面試中常見的連結串列問題面試
- LeetCode-Python-86. 分隔連結串列(連結串列)LeetCodePython
- 連結串列面試題(七)---合併兩個有序連結串列面試題
- 資料結構實驗之連結串列九:雙向連結串列資料結構
- 資料結構實驗之連結串列二:逆序建立連結串列資料結構
- 資料結構--陣列、單向連結串列、雙向連結串列資料結構陣列
- 連結串列(python)Python
- 雙向連結串列
- 反轉連結串列
- 構建連結串列