-
1) Array
- 인덱스o. 조회유리
- 크기변경x. 삽입(공간부족) / 삭제(공간낭비) 불리2) List
- 순서가 있는 엘레먼트 모임
- 인덱스가 있으나 Array와 달리 데이터에 종속적이지 않음
# ArrayList
- 내부적으로 배열사용. 인덱스o. 조회유리
- 삽입, 삭제시 데이터 이동 연산이 추가되어 느림
# LinkedList
- 배열x. 인덱스x. 다음 노드의 주소값 존재함.
- 조회시 Head에서 시작함 O(n)
- 삽입 / 삭제 유리 O(n)
3) Queue
- FIFO, 시작 포인터 Front. 끝 포인터 Rear
- enqueue 데이터 삽입. dequeue 데이터 추출- 선형 큐는 삽입, 삭제시 크기제약이 있어 불리함 (* 대체 원형큐)
- 줄서기. Buffer
4) Stack
- LIFO. underflow , overflow 문제가 있음
- push 데이터 삽입. pop 데이터 추출
- 트리 구조의 탐색에서 깊이 우선 탐색에 사용5) Graph
- 상하 개념이 없는 Node(vertax)와 Edge(line)의 집합
- 배열과 리스트로 구현될 수 있다
- 지하철 노선도, 매칭/추천 알고리즘에 사용
[그래프, 인접행렬, 인접리스트] Node = {0, 1, 2, 3, 4}
Edge = {(0,1), (0,2), (1,2), (1,3)}
Graph = {Node, Edge}
6) Tree
- 계층 구조로 연결된 형태. 노드
- 루트. 리프. 부모. 자식. 형제. 조상. 자손
- 댓글, 카테고리
(우) [Binary Tree - 노드별 자식을 최대 2개만 갖는 트리] ** https://github.com/rayleighko/js4newbie/tree/master/Data_structure
'CS' 카테고리의 다른 글
[WEB] (0) 2020.06.15 [시스템구조] (0) 2020.06.15 [네트워크] OSI 7계층 과 TCP/IP (0) 2020.06.15