Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# LinkedList 클래스 완벽 정리: 빠른 삽입과 삭제의 핵심

C# LinkedList란?

C#에서는 System.Collections.Generic 네임스페이스를 통해 LinkedList(연결 리스트)를 제공합니다. LinkedList<T> 클래스는 연결 리스트 자료구조를 기반으로 동작하며, 리스트 안에서 요소를 빠르게 삽입하고 삭제할 수 있다는 점이 가장 큰 장점입니다.

배열이나 List와 달리 LinkedList는 노드들이 포인터로 서로 연결된 구조이기 때문에, 중간 위치에 있는 요소를 추가하거나 제거할 때도 데이터를 밀어내거나 당기는 작업 없이 처리할 수 있습니다. 또한 중복된 요소도 허용됩니다.

LinkedList<T>의 주요 특징

다음은 C# LinkedList<T> 클래스의 핵심적인 특징입니다.

  • 빠른 삽입 및 삭제: 노드 간 링크만 변경하면 되므로 요소 추가와 삭제 속도가 매우 빠릅니다.
  • 양방향 탐색 지원: 각 노드가 이전 노드와 다음 노드를 모두 참조하는 이중 연결 리스트 구조입니다.
  • 중복 요소 허용: 같은 값을 여러 번 저장할 수 있습니다.
  • 네임스페이스: System.Collections.Generic에 포함되어 있어 별도 설치 없이 바로 사용할 수 있습니다.

LinkedList 사용 예제

아래 예제는 문자열을 저장하는 LinkedList를 생성하고, AddLast 메서드로 세 개의 요소를 순서대로 추가한 뒤 foreach 문으로 전체를 출력하는 코드입니다.

using System;
using System.Collections.Generic;

class Demo {
    static void Main() {
        LinkedList<string> l = new LinkedList<string>();

        l.AddLast("one");
        l.AddLast("two");
        l.AddLast("three");

        foreach(var ele in l) {
            Console.WriteLine(ele);
        }
    }
}

실행 결과

코드를 실행하면 다음과 같이 리스트에 추가한 순서대로 요소가 출력됩니다.

one
two
three

마무리

C#의 LinkedList<T> 클래스는 잦은 삽입과 삭제가 필요한 상황에서 탁월한 성능을 발휘하는 자료구조입니다. 다만 인덱스를 통한 직접 접근은 지원하지 않기 때문에, 랜덤 액세스가 많은 경우에는 List<T>를, 삽입·삭제 작업이 많은 경우에는 LinkedList<T>를 선택하는 것이 좋습니다.