C# 알고리즘

LinkedList (링크드리스트)

잼잼재미 2023. 11. 16. 11:43

링크드리스트


 - 고정되지 않은 공간을 가지고 있고, 각각의 원소들이 연속되지 않는 메모리 공간을 할당

 - 각 노드가 데이터와 포인터를 가지고 있으면서 노드들이 한 줄로 쭉 연결되어 있는 방

 - 유동적으로 연결고리를 떼었다가 붙였다가 할 수 있음

 - 양방향으로도 연결 가능

 - 노드 : 각각의 원소 값 저장

 - 포인터 : 현재 노드가 가리키는 다음 노드

 - C++의 List와 유사

 

 

링크드리스트와 배열 비교


  배열 링크드리스트
조회 index로 직접 접근, 시간 복잡도 : O(1) 모든 요소 조회, 시간 복잡도 : O(n)
중간 삽입 및 삭제 모든 요소 이동, 시간 복잡도 : O(n) 시간 복잡도 : O(1) 또는 O(n)
공간 크기가 고정 유동적으로 변함
메모리 공간 연속적 비연속적
장점 빠른 조회 중간 삽입 및 삭제 효율적
단점 중간 삽입 및 삭제 비효율적 조회 느림

 

'C# 알고리즘' 카테고리의 다른 글

OrderBy  (1) 2023.11.29
Big-O 표기법  (0) 2023.11.15
그리디 알고리즘  (0) 2023.11.15
트리 (Tree)  (0) 2023.11.15
그래프 (Graph)  (1) 2023.11.15