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

C# LinkedList에서 특정 노드 뒤에 새 노드를 추가하는 방법

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() 메서드를 활용하면 특정 노드를 기준으로 정확한 위치에 새 요소를 배치할 수 있어, 순서가 중요한 데이터를 관리할 때 매우 유용합니다.