LinkedList<T> 클래스
- 이중 연결 목록(Doubly Linked List; 이중으로 연결된 목록) 자료 구조를 나타내는 제네릭 클래스
- 새 요소를 목록의 어디에나 빠르게 삽입 할 수 있음
- 색인을 통해서 직접 접근하지 못하기 때문에 검색은 느림, 이진 탐색 역시 불가
- 색인 접근이 불가능하므로 IList<T>는 구현하지 않음
namespace System.Collections.Generic
{
public class LinkedList<T> : ICollection<T>, IEnumerable<T>, IEnumerable, ICollection, IReadOnlyCollection<T>, ISerializable, IDeserializationCallback
{
public LinkedList();
public LinkedList(IEnumerable<T> collection);
protected LinkedList(SerializationInfo info, StreamingContext context);
// 노드의 추가
public LinkedListNode<T> AddFirst(T value);
public void AddFirst(LinkedListNode<T> node);
public LinkedListNode<T> AddLast(T value);
public void AddLast(LinkedListNode<T> node);
public LinkedListNode<T> AddAfter(LinkedListNode<T> node, T value);
public void AddAfter(LinkedListNode<T> node, LinkedListNode<T> newNode);
public LinkedListNode<T> AddBefore(LinkedListNode<T> node, T value);
public void AddBefore(LinkedListNode<T> node, LinkedListNode<T> newNode);
// 노드의 제거
public void Clear();
public void RemoveFirst();
public void RemoveLast();
public bool Remove(T value);
public void Remove(LinkedListNode<T> node);
// 노드 관련 속성
public int Count { get; }
public LinkedListNode<T> Last { get; }
public LinkedListNode<T> First { get; }
// 검색
public bool Contains(T value);
public LinkedListNode<T> Find(T value);
public LinkedListNode<T> FindLast(T value);
// 배열로 복사
public void CopyTo(T[] array, int index);
// 열거
public Enumerator GetEnumerator();
public struct Enumerator : IEnumerator<T>, IDisposable, IEnumerator, ISerializable, IDeserializationCallback
{
public T Current { get; }
public void Dispose();
public bool MoveNext();
}
// 직렬화
public virtual void GetObjectData(SerializationInfo info, StreamingContext context);
public virtual void OnDeserialization(object sender);
}
}
반응형
LinkedListNode<T> 클래스
- LinkedList의 노드를 구현하는 클래스
namespace System.Collections.Generic
{
public sealed class LinkedListNode<T>
{
public LinkedListNode(T value);
public LinkedList<T> List { get; }
public LinkedListNode<T> Next { get; }
public LinkedListNode<T> Previous { get; }
public T Value { get; set; }
}
}
반응형
'C#' 카테고리의 다른 글
[C#] IDictionary<TKey,TValue>, IReadOnlyDictionary<TKey,TValue>, IDictionary (0) | 2023.09.20 |
---|---|
[C#] HashSet<T>, SortedSet<T> (0) | 2023.09.16 |
[C#] BitArray (0) | 2023.09.14 |
[C#] Queue<T>, Queue, Stack<T>, Stack (0) | 2023.09.12 |
[C#] IList<T>, IList (0) | 2023.09.08 |
[C#] ICollection<T>, ICollection (1) | 2023.08.31 |
[C#] AppContext (1) | 2023.08.30 |
[C#] Process (1) | 2023.08.29 |