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

C# LinkedList AddBefore() 메서드 – 특정 노드 앞에 요소 추가하기

C#에서 AddBefore() 메서드를 사용하면 연결 리스트(LinkedList)의 특정 노드 바로 앞에 새 노드를 간편하게 추가할 수 있습니다. 이 메서드는 지정한 기존 노드를 기준으로 해당 위치 앞에 새로운 노드를 삽입하며, O(1) 시간 복잡도로 동작하기 때문에 매우 효율적입니다.

LinkedList 생성하기

먼저 문자열 노드로 구성된 LinkedList를 만들어 보겠습니다.

string[] students = {"Henry", "David", "Tom"};
LinkedList<string> list = new LinkedList<string>(students);

리스트 끝에 노드 추가하기

AddLast() 메서드를 사용하면 리스트 맨 끝에 새 노드를 추가할 수 있습니다.

// 리스트 끝에 새 노드 추가
var newNode = list.AddLast("Brad");

AddBefore() 메서드로 노드 삽입하기

이제 AddBefore() 메서드를 사용하여 방금 추가한 "Brad" 노드 앞에 "Emma"라는 새 노드를 삽입해 보겠습니다.

list.AddBefore(newNode, "Emma");

이렇게 하면 "Brad" 노드 바로 앞에 "Emma"가 위치하게 됩니다.

전체 예제 코드

using System;
using System.Collections.Generic;

class Demo {
   static void Main() {
      string[] students = {"Henry", "David", "Tom"};
      LinkedList<string> list = new LinkedList<string>(students);

      Console.WriteLine("초기 LinkedList:");
      foreach (var stu in list) {
         Console.WriteLine(stu);
      }

      // 리스트 끝에 새 노드 추가
      var newNode = list.AddLast("Brad");

      // 위에서 추가한 노드 앞에 새 노드 삽입
      list.AddBefore(newNode, "Emma");

      Console.WriteLine("새 노드 추가 후 LinkedList...");
      foreach (var stu in list) {
         Console.WriteLine(stu);
      }
   }
}

실행 결과

초기 LinkedList:
Henry
David
Tom
새 노드 추가 후 LinkedList...
Henry
David
Tom
Emma
Brad

참고 사항

AddBefore() 메서드를 사용할 때는 다음 사항을 유의해야 합니다.

  • ArgumentNullException: 지정한 노드가 null인 경우 발생합니다.
  • InvalidOperationException: 지정한 노드가 현재 LinkedList에 속해 있지 않은 경우 발생합니다.
  • 연결 리스트는 포인터 조작만으로 노드를 삽입하므로, 배열과 달리 요소 이동 없이 빠르게 삽입 작업을 수행할 수 있습니다.