Cần sử dụng 2 namspace sau:
using System.Collections; using System.Collections.Generic;
Tóm Tắt
LinkedList trong C#
Trong thư viện .NET cung cấp lớp LinkedList<T>
là loại danh sách liên kết kép (từ
đây gọi tắt là danh sách liên kết).
Danh sách liên kết là một danh sách chứa các phần tử, mỗi phần tử trong loại
danh sách này được gọi là một nút (Node). Mỗi nút ngoài dữ liệu
của nút đó, nó sẽ gồm hai biến – một biến tham chiếu đến Node phía trước, một nút tham chiếu đến nút phía
sau.
Điều này có nghĩa, có có một nút – có thể lấy được nút phía trước nó – cứ thế cho đến nút đầu tiên,
nút đầu, tương tự lấy được nút phía sau và dịch chuyển dần được về cuối.
Khai báo – khởi tạo một LinkedList, ví dụ tạo danh sách liên kết mà dữ liệu các nút
có kiểu string
LinkedList<string> cacbaihoc = new LinkedList<string>();
Danh sách khởi tạo trên có dữ liệu trong các nút là kiểu string
, tuy nhiên
bản thân các nút được biểu diễn bởi lớp LinkedListNode
LinkedListNode trong C#
LinkedListNode<T>
là lớp biểu diễn NÚT trong LinkedList, các đối tượng
của LinkedListNode được tạo ra từ LinkedList. Nó có các thuộc tính sau:
Thuộc tính
Ý nghĩa
List
Thuộc tính – tham chiếu (trỏ) đến LinkedList
Value
Thuộc tính – là dữ liệu của Node
Next
Thuộc tính – tham chiếu (trỏ) đến NÚT tiếp theo (phía sau) – null thì nó là nút cuối
Previous
Thuộc tính – tham chiếu (trỏ) đến NÚT phía trước – null thì nó là nút đầu tiên
Một số phương thức trong LinkedList
Member
Ý nghĩa
Count
Số nút trong danh sách
First
Nút đầu tiên của danh sách
Last
Nút đầu tiên của danh sách
AddFirst(T)
Chèn một nút có dữ liệu T vào đầu danh sách
AddLast(T)
Chèn một nút có dữ liệu T vào cuối danh sách
AddAfter(Node, T)
Chèn nút với dữ liệu T, vào sau nút Node (kiểu LinkedListNode)
AddBefore(Node, T)
Chèn nút với dữ liệu T, vào trước nút Node (kiểu LinkedListNode)
Clear()
Xóa toàn bộ danh sách
Contains(T)
Kiểm tra xem có nút với giá trị dữ liệu bằng T
Remove(T)
Xóa nút có dữ liệu bằng T
RemoveFirst()
Xóa nút đầu tiên
RemoveLast()
Xóa nút cuối cùng
Find(T)
Tìm một nút
Thử tạo ra danh sách liên kết chứa tên các bài học
LinkedList<string> cacbaihoc = new LinkedList<string>(); cacbaihoc.AddFirst("Bài học 3"); // thêm vào đầu danh sach cacbaihoc.AddLast("Bài học 4"); // thêm vào cuối cacbaihoc.AddFirst("Bài học 2"); cacbaihoc.AddFirst("Bài học 1"); // Lấy phần tử đầu tiên, sau đó duyệt đến cuối Console.WriteLine("---------Nút từ đầu về cuối"); LinkedListNode<string> node = cacbaihoc.First; while (node != null) { Console.WriteLine(node.Value); node = node.Next; // node gán bằng nút sau nó } // Lấy phần tử cuối cùng, sau đó duyệt về phần tử đầu tiên Console.WriteLine("--------Nút từ cuối đến đầu"); node = cacbaihoc.Last; while (node != null) { Console.WriteLine(node.Value); node = node.Previous; // node gán bằng nút phía trước nó } /* Kết quả ---------Nút từ đầu về cuối Bài học 1 Bài học 2 Bài học 3 Bài học 4 --------Nút từ cuối đến đầu Bài học 4 Bài học 3 Bài học 2 Bài học 1 */
Tham khảo mã nguồn:
CS024_SomeCollections
hoặc tải về
ex024
ĐĂNG KÝ KÊNH, XEM CÁC VIDEO TRÊN XUANTHULAB
Đăng ký nhận bài viết mới