C# 연결 리스트(LinkedList) 순회하기
C#에서 LinkedList<T> 컬렉션은 이중 연결 리스트를 제공하며, 노드를 자유롭게 추가하고 순회할 수 있습니다. 먼저 연결 리스트 컬렉션을 생성하는 방법부터 살펴보겠습니다.
1. 연결 리스트 생성
문자열을 저장할 LinkedList 컬렉션을 선언합니다.
var list = new LinkedList<string>();
2. 요소 추가
AddLast() 메서드를 사용하여 리스트 끝에 요소를 추가합니다.
list.AddLast("One");
list.AddLast("Two");
list.AddLast("Four");3. 기존 노드 앞뒤에 새 요소 삽입
Find() 메서드로 특정 노드를 찾은 후, AddBefore()와 AddAfter()를 사용하여 원하는 위치에 새 요소를 삽입할 수 있습니다.
LinkedListNode<string> node = list.Find("Four");
list.AddBefore(node, "Three");
list.AddAfter(node, "Five");4. 전체 예제 코드
다음은 연결 리스트의 모든 노드를 순회(traversal)하면서 값을 출력하는 완전한 예제입니다.
using System;
using System.Collections.Generic;
public class Demo {
public static void Main(string[] args) {
var list = new LinkedList<string>();
list.AddLast("One");
list.AddLast("Two");
list.AddLast("Four");
Console.WriteLine("순회 중...");
foreach(var res in list) {
Console.WriteLine(res);
}
LinkedListNode<string> node = list.Find("Four");
list.AddBefore(node, "Three");
list.AddAfter(node, "Five");
Console.WriteLine("새 요소 추가 후 순회...");
foreach(var res in list) {
Console.WriteLine(res);
}
}
}출력 결과
순회 중... One Two Four 새 요소 추가 후 순회... One Two Three Four Five
핵심 정리
foreach 문을 사용하면 LinkedList의 각 노드를 처음부터 끝까지 순서대로 탐색할 수 있습니다. AddBefore()는 지정한 노드 앞에, AddAfter()는 뒤에 새 노드를 삽입하므로, 중간 위치에 효율적으로 요소를 추가할 때 유용합니다.