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>를 선택하는 것이 좋습니다.