GiYeong

배열(Array) / 연결리스트(Linked List) 본문

CS/자료구조

배열(Array) / 연결리스트(Linked List)

gy2710 2022. 7. 5. 02:47

  Array Linked List
저장방식 요소들이 인접한 메모리 위치에 저장된다. 요소들이 메모리 어딘가에 저장되며, 새로운 요소의 주소는 Linked List의 이전 노드(Node)에 저장된다.
종류 일차원배열, 이차원배열, 다차원배열 단일 연결 리스트(Singly Linked List),
이중 연결 리스트(Doubly Linked List),
다중 연결 리스트(Multiply Linked List), 원형 연결 리스트(Circular Linked List)
크기 Array의 크기는 반드시 배열 선언 시점에 지정되어야 한다. LinkedList의 크기는 새로운 요소가 추가될 때, runtime 시점에서 크기가 커질 수 있다.
메모리 할당 Array가 선언되자마자 Compile 시점에 Heap 영역에 메모리가 할당된다. (Static Memory Allocation) 세로운 노드가 추가될때 runtime 시점에 Heap 영역에 메모리가 할당된다. (Dynamic Memory Allocation)
요소 접근 Random Access를 지원한다. (index를 통해 요소에 직접 접근 가능, O(1)) Sequential Access를 지원한다. (요소에 접근할 때, 처음부터 순차적으로 접근해야 한다, O(N))
삽입 / 삭제 index로 접근 후 삽입 / 삭제(O(1)) + 전체 배열 요소를 Shift(O(N)) 삽입하려는 위치에 접근 후 삽입 / 삭제(O(N))
만약, 맨 앞이나 뒤에 삽입 / 삭제 시, O(1)
정리 데이터 접근이 주 업무일 경우 사용 데이터 수정이 주 업무일 경우 사용

'CS > 자료구조' 카테고리의 다른 글

Tree, Binary Tree, BST, AVL Tree  (0) 2022.07.06
Priority Queue / Heap  (0) 2022.07.06
Stack / Queue  (0) 2022.07.06
Hash Table  (0) 2022.07.05
시간복잡도  (0) 2022.07.05
Comments