C#의 LinkedList<T> 클래스는 양방향 연결 리스트를 구현한 컬렉션으로, Find() 메서드를 사용하면 특정 값을 가진 노드를 손쉽게 검색할 수 있습니다. 이 글에서는 연결 리스트를 만들고, 원하는 노드를 찾은 뒤 그 위치에 새 노드를 삽입하는 과정을 단계별로 살펴보겠습니다.
1. 연결 리스트 생성하기
가장 먼저 문자열을 저장할 새로운 연결 리스트를 생성합니다.
LinkedList<string> myList = new LinkedList<string>();
2. 연결 리스트에 요소 추가하기
AddLast() 메서드를 사용하면 리스트의 맨 뒤에 요소를 순서대로 추가할 수 있습니다.
// 연결 리스트에 6개의 요소 추가
myList.AddLast("P");
myList.AddLast("Q");
myList.AddLast("R");
myList.AddLast("S");
myList.AddLast("T");
myList.AddLast("U");3. Find() 메서드로 노드 찾고 새 노드 삽입하기
Find() 메서드는 지정한 값과 일치하는 첫 번째 노드를 반환하며, 결과는 LinkedListNode<T> 타입으로 받습니다. 찾아낸 노드를 기준으로 AddAfter() 메서드를 호출하면 해당 노드 바로 뒤에 새 노드를 삽입할 수 있습니다.
LinkedListNode<string> node = myList.Find("R");
myList.AddAfter(node, "ADDED");참고: Find() 메서드는 값이 존재하지 않을 경우 null을 반환합니다. 따라서 실제 코드에서는 AddAfter()를 호출하기 전에 반드시 null 여부를 확인하는 것이 안전합니다.
전체 예제 코드
아래 전체 코드를 실행하면 연결 리스트에서 노드를 찾고 새 노드를 삽입하는 과정을 직접 확인할 수 있습니다.
using System;
using System.Collections.Generic;
class Program {
static void Main() {
LinkedList<string> myList = new LinkedList<string>();
// 연결 리스트에 6개의 요소 추가
myList.AddLast("P");
myList.AddLast("Q");
myList.AddLast("R");
myList.AddLast("S");
myList.AddLast("T");
myList.AddLast("U");
// "R" 노드를 찾은 뒤 그 뒤에 새 노드 삽입
LinkedListNode<string> node = myList.Find("R");
myList.AddAfter(node, "ADDED");
foreach (var i in myList) {
Console.WriteLine(i);
}
}
}실행 결과
P Q R ADDED S T U
실행 결과를 보면 "R" 노드를 성공적으로 찾아낸 후, 그 바로 뒤에 "ADDED"라는 새 노드가 삽입된 것을 확인할 수 있습니다. 이처럼 Find()와 AddAfter() 메서드를 조합하면 연결 리스트 내에서 원하는 위치에 유연하게 데이터를 삽입할 수 있습니다.