티스토리 뷰

Study

[자료구조] Linked List

hyuuny 2022. 7. 31. 00:53

Linked List

Linked ListNode라는 구조체로 이루어져 있는데, Node는 데이터 값과 다음 Node의 address를 저장한다.


Linked List물리적인 메모리상에서는 비연속적으로 저장되지만, 이를 구성하는 각각의 Node가 다음 Node의 address를 가리킴으로써 논리적인 연속성을 갖는 자료구조이다. 또한, 데이터가 추가되는 시점에 메모리를 할당하기 때문에 메모리를 좀 더 효율적으로 사용 할 수 있다는 장점이 있다.

데이터 삽입/삭제

Array List의 경우, 중간에 데이터를 삽입/삭제하게 되면 해당 인덱스의 뒤에 있는 모든 원소들을 shift 하기 때문에 O(n)의 시간복잡도를 갖게 된다. 하지만 Linked List는 물리적으로 옮길 필요없이 next address가 가리키는 주소값만 변경하면 되기 때문에 O(1)의 시간복잡도로 삽입/삭제가 가능하다.


데이터 검색의 경우, Array List는 인덱스로 해당 원소에 접근하기 때문에 O(1)의 시간복잡도를 갖지만, Linked List는 첫 번째 Node부터 순차적으로 확인하기 때문에 O(n)의 시간복잡도를 갖는다.


삽입



삭제


'Study' 카테고리의 다른 글

[자료구조] Hash table  (0) 2022.08.02
[자료구조] priority queue  (0) 2022.08.01
[Design Pattern] 템플릿 콜백 패턴  (0) 2022.05.09
[Design Pattern] 전략 패턴  (0) 2022.05.08
[Design Pattern] 템플릿 메서드 패턴  (0) 2022.05.08
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함