LinkedListNode에 대해 알아보자.
LinkedList의 노드를 나타내는 클래스이다.
하나의 노드를 나태내는 타입으로 리스트 내 요소간의 연결 정보와 현재 노드값을 저장한다.
1. Value
노드에 저장된 값을 가져온다.
2. Next
다음 노드의 값을 저장한다. 다음 노드가 없다면 null 이다.
3. Previous
이전 노드의 값을 저장한다. 이전 노드가 없다면 null 이다.
이처럼 각 노드는 앞, 뒤, 자신이 어디 속해 있는지 알고 있는 양방향 연결 리스트 이기 때문에
그 노드를 기준으로 삽입/삭제가 아주 빠르게 가능하다 (O(1))
{ }을 사용한 초기화 문법은 불가능 하다.
ex) var list = new LinkedList<int>{ 1, 2, 3 };컬렉션 초기화 문법엔 내부적으로 Add()를 호출한다.
LinkedList엔 Add가 없기때문에 불가능하다.즉, 배열과 List같은 IEnumerable 타입을 넣어야 가능하다.
C# 기준으로 반복 가능한 컬렉션 타입을 의미하는 인터페이스 이다.
foreach로 순회가 가능하다면 IEnumerable이라고 보면 된다.
1. First
리스트의 첫번째 노드를 불러온다.
2. Last
리스트의 마지막 노드를 불러온다.
3. Count
리스트 안의 모든 노드 개수를 불러온다.
1. AddFirst(value)
첫째 위치에 노드 추가
2. AddLast(value)
마지막 위치에 노드 추가
3. AddBefore(value)
특정 노드 앞에 추가
4. AddAfter(value)
특정 노드 뒤에 추가
5. Remove(node)
특정 노드 삭제