Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Chương trình C# tìm nút (node) trong LinkedList

LinkedList<T> trong namespace System.Collections.Generic là danh sách liên kết đôi (doubly linked list). Phương thức Find(value) trả về LinkedListNode<T> đầu tiên khớp giá trị.

Mã nguồn

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        // Tạo linked list
        LinkedList myList = new LinkedList();
        
        // Thêm 6 phần tử
        myList.AddLast("P");
        myList.AddLast("Q");
        myList.AddLast("R");
        myList.AddLast("S");
        myList.AddLast("T");
        myList.AddLast("U");
        
        // Tìm node có giá trị "R"
        LinkedListNode node = myList.Find("R");
        
        // Thêm node mới SAU node "R"
        if (node != null) {
            myList.AddAfter(node, "ADDED");
        }
        
        // In danh sách
        foreach (var item in myList) {
            Console.WriteLine(item);
        }
    }
}

Kết quả

P
Q
R
ADDED
S
T
U

Các phương thức hữu ích của LinkedList

Phương thứcMô tả
AddFirst(T)Thêm vào đầu
AddLast(T)Thêm vào cuối
AddBefore(node, T)Thêm trước node cho trước
AddAfter(node, T)Thêm sau node cho trước
Find(T)Tìm node đầu tiên khớp giá trị (O(n))
FindLast(T)Tìm node cuối cùng khớp giá trị
Remove(T)Xóa node đầu tiên khớp giá trị
Remove(node)Xóa node cụ thể (O(1))

Lưu ý

  • Find trả về null nếu không tìm thấy — luôn kiểm tra null trước khi dùng.
  • LinkedList phù hợp khi: thường chèn/xóa giữa danh sách, không cần truy cập ngẫu nhiên (index).
  • Truy cập theo index list[index] không hỗ trợ — phải duyệt thủ công hoặc dùng ElementAt (LINQ, O(n)).
  • Đối với hầu hết trường hợp, List<T> hiệu quả hơn nhờ cache locality.