C# LinkedList에서 특정 노드 뒤에 새 노드 추가하기
C#의 LinkedList<T> 클래스는 연결 리스트 자료구조를 구현한 컬렉션으로, AddAfter() 메서드를 사용하면 특정 노드 바로 뒤에 새 노드를 간편하게 삽입할 수 있습니다. 이번 글에서는 문자열 배열로 LinkedList를 생성한 뒤, 목록 끝에 노드를 추가하고 그 노드 뒤에 또 다른 노드를 삽입하는 전체 과정을 예제와 함께 살펴보겠습니다.
1. LinkedList 생성 및 요소 추가
먼저 문자열 배열을 기반으로 LinkedList를 만들어 초기 요소들을 설정합니다.
string[] students = {"Beth", "Jennifer", "Amy", "Vera"};
LinkedList<string> list = new LinkedList<string>(students);2. 목록 끝에 새 노드 추가
AddLast() 메서드를 사용하면 목록의 맨 끝에 새 노드를 추가할 수 있습니다. 이 메서드는 방금 추가된 노드를 반환하기 때문에, 반환값을 변수에 저장해 두면 이후 AddAfter() 메서드에서 해당 노드를 기준점으로 활용할 수 있습니다.
var newNode = list.AddLast("Emma");3. AddAfter() 메서드로 특정 노드 뒤에 노드 삽입
이제 AddAfter() 메서드를 사용하여 앞에서 추가한 newNode 바로 뒤에 새 노드를 삽입합니다. 첫 번째 인자에는 기준이 되는 노드를, 두 번째 인자에는 추가할 값을 전달합니다.
list.AddAfter(newNode, "Matt");
전체 예제 코드
using System;
using System.Collections.Generic;
class Demo {
static void Main() {
string[] students = {"Beth", "Jennifer", "Amy", "Vera"};
LinkedList<string> list = new LinkedList<string>(students);
// 초기 LinkedList 출력
foreach (var stu in list) {
Console.WriteLine(stu);
}
// 목록 끝에 노드 추가
var newNode = list.AddLast("Emma");
// 위에서 추가한 노드 뒤에 새 노드 삽입
list.AddAfter(newNode, "Matt");
Console.WriteLine("LinkedList after adding new nodes...");
foreach (var stu in list) {
Console.WriteLine(stu);
}
}
}
실행 결과
Beth
Jennifer
Amy
Vera
LinkedList after adding new nodes...
Beth
Jennifer
Amy
Vera
Emma
Matt
정리
LinkedList<T>는 노드 기반 컬렉션이므로, 중간 위치에 요소를 삽입하거나 삭제하는 작업에서 배열 기반 List<T>보다 효율적입니다. 특히 AddAfter()와 AddBefore() 메서드를 활용하면 특정 노드를 기준으로 정확한 위치에 새 요소를 배치할 수 있어, 순서가 중요한 데이터를 관리할 때 매우 유용합니다.