Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

ลบโหนดทั้งหมดออกจาก LinkedList ใน C#

บทความนี้สาธิตวิธีลบโหนด (nodes) ทั้งหมดออกจาก LinkedList<T> โดยใช้เมธอด Clear() ใน C#

ตัวอย่างที่ 1: สร้าง LinkedList จากอาเรย์ แล้วลบทั้งหมด

using System;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        int[] num = { 10, 20, 30, 40, 50 };
        LinkedList<int> list = new LinkedList<int>(num);

        Console.WriteLine("LinkedList nodes...");
        foreach (var n in list)
        {
            Console.WriteLine(n);
        }

        list.Clear();

        Console.WriteLine("LinkedList is empty now!");
        foreach (var n in list)
        {
            Console.WriteLine(n); // ไม่มีอะไรพิมพ์ออกมา
        }
    }
}

ผลลัพธ์

LinkedList nodes...
10
20
30
40
50
LinkedList is empty now!

ตัวอย่างที่ 2: เพิ่มโหนดทีละตัว แล้วตรวจสอบ Count ก่อน/หลัง Clear

using System;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        LinkedList<string> list = new LinkedList<string>();
        list.AddLast("A");
        list.AddLast("B");
        list.AddLast("C");
        list.AddLast("D");
        list.AddLast("E");
        list.AddLast("F");
        list.AddLast("G");
        list.AddLast("H");
        list.AddLast("I");
        list.AddLast("J");

        Console.WriteLine("Count of nodes = " + list.Count);

        list.Clear();

        Console.WriteLine("Count of nodes (updated) = " + list.Count);
    }
}

ผลลัพธ์

Count of nodes = 10
Count of nodes (updated) = 0

สรุป

  • ใช้ Clear() เพื่อลบโหนดทั้งหมดออกจาก LinkedList — ทำให้ Count = 0
  • LinkedList<T> เป็น doubly linked list — แต่ละโหนดมี reference ไปทั้ง next และ previous
  • เมธอดเพิ่มโหนดหลัก: AddFirst(), AddLast(), AddBefore(), AddAfter()
  • เมธอดลบโหนด: Remove(), RemoveFirst(), RemoveLast(), Clear()
  • หลัง Clear() โหนดทั้งหมดถูกปล่อยให้ GC จัดการ — LinkedList พร้อมใช้งานใหม่ได้ทันที
  • Complexity ของ Clear() คือ O(n) ต้องเดินทุกโหนดเพื่อปล่อย reference

เมธอด LinkedList ที่น่าสนใจ

เมธอดคำอธิบาย
AddFirst(T)เพิ่มโหนดที่ด้านหน้า
AddLast(T)เพิ่มโหนดที่ด้านหลัง
AddBefore(LinkedListNode, T)เพิ่มก่อนโหนดที่ระบุ
AddAfter(LinkedListNode, T)เพิ่มหลังโหนดที่ระบุ
Remove(T)ลบโหนดแรกที่มีค่าตรงกัน
Remove(LinkedListNode)ลบโหนดที่ระบุโดยตรง
RemoveFirst() / RemoveLast()ลบโหนดแรก/สุดท้าย
Clear()ลบทั้งหมด
Find(T) / FindLast(T)ค้นหาโหนดแรก/สุดท้ายที่มีค่าตรงกัน