C#의 LinkedList<T> 클래스에서 리스트 맨 앞에 새 노드나 값을 추가하려면 AddFirst() 메서드를 사용합니다. 이 메서드는 지정된 값을 담는 새 노드를 연결 리스트의 시작 부분에 삽입하며, 시간 복잡도는 O(1)로 매우 효율적입니다.
예제 1: 문자열 LinkedList에서 AddFirst 사용하기
먼저 문자열 타입의 LinkedList를 만들고, AddLast()로 여러 요소를 추가한 뒤 AddFirst()로 시작 부분에 노드를 삽입하는 예제입니다.
using System;
using System.Collections.Generic;
public class Demo {
public static void Main(){
LinkedList<string> list = new LinkedList<string>();
// 리스트 끝에 요소 추가
list.AddLast("A");
list.AddLast("B");
list.AddLast("C");
list.AddLast("D");
list.AddLast("E");
list.AddLast("F");
Console.WriteLine("노드 개수 = " + list.Count);
Console.WriteLine("LinkedList의 요소들...");
foreach (string res in list){
Console.WriteLine(res);
}
// 추가 요소 삽입
list.AddLast("G");
list.AddLast("H");
list.AddLast("I");
Console.WriteLine("\n업데이트된 노드 개수 = " + list.Count);
Console.WriteLine("업데이트된 LinkedList의 요소들");
foreach (string res in list){
Console.WriteLine(res);
}
// 시작 부분에 노드 추가
list.AddFirst("AA");
Console.WriteLine("\n맨 앞에 노드를 추가했습니다...");
Console.WriteLine("업데이트된 노드 개수 = " + list.Count);
Console.WriteLine("업데이트된 LinkedList의 요소들");
foreach (string res in list){
Console.WriteLine(res);
}
}
}실행 결과
Count of nodes = 6 Elements in LinkedList... A B C D E F Count of nodes...UPDATED = 9 Elements in LinkedList...UPDATED A B C D E F G H I We added a node in the beginning... Count of nodes...UPDATED = 10 Elements in LinkedList...UPDATED AA A B C D E F G H I
실행 결과를 보면 "AA"가 AddFirst() 호출 이후 리스트의 가장 첫 번째 위치에 삽입되었고, 전체 노드 개수가 9개에서 10개로 증가한 것을 확인할 수 있습니다.
예제 2: 정수 LinkedList에서 AddFirst 사용하기
이번에는 정수 타입 LinkedList에서 AddFirst()를 두 번 연속 호출하는 예제입니다. AddFirst()를 여러 번 호출하면 나중에 추가한 값이 더 앞쪽에 위치하게 됩니다.
using System;
using System.Collections.Generic;
public class Demo {
public static void Main(){
LinkedList<int> list = new LinkedList<int>();
// 리스트 끝에 요소 추가
list.AddLast(100);
list.AddLast(200);
list.AddLast(300);
list.AddLast(400);
Console.WriteLine("노드 개수 = " + list.Count);
Console.WriteLine("LinkedList의 요소들...");
foreach (int res in list){
Console.WriteLine(res);
}
// 시작 부분에 노드 두 개 추가
list.AddFirst(500);
list.AddFirst(600);
Console.WriteLine("\n맨 앞에 노드를 추가했습니다...");
Console.WriteLine("업데이트된 노드 개수 = " + list.Count);
Console.WriteLine("업데이트된 LinkedList의 요소들");
foreach (int res in list){
Console.WriteLine(res);
}
}
}실행 결과
Count of nodes = 4 Elements in LinkedList... 100 200 300 400 We added a node in the beginning... Count of nodes...UPDATED = 6 Elements in LinkedList...UPDATED 600 500 100 200 300 400
핵심 정리
- AddFirst(T value): LinkedList의 시작 부분에 새 노드를 추가합니다.
- AddLast(T value): LinkedList의 끝 부분에 새 노드를 추가합니다.
- AddFirst()를 연속으로 호출하면 마지막에 추가한 값이 리스트의 맨 앞에 위치합니다.
- LinkedList는 양방향 연결 리스트로 구현되어 있어 맨 앞과 맨 뒤에 요소를 추가하는 작업이 모두 O(1)의 시간 복잡도를 가집니다.
- Count 속성으로 현재 리스트에 포함된 노드의 총 개수를 확인할 수 있습니다.