선형
Array와 LinkedList의 차이
Array | LinkedList |
---|---|
연속된 메모리 공간에 존재함. | 메모리 상에서 떨어져 있는 데이터들이 앞과 뒤의 데이터를 기억하는 형태로 존재함. |
데이터를 조회할 때 시간 : O(1) | 데이터를 조회할 때 시간 : O(N) |
컴파일 과정에서 메모리가 할당되는 정적 메모리 할당 | 런타임 환경에서 메모리가 할당되는 동적 메모리 할당 |
정적인 데이터를 저장하고 관리할 때 적합함. | 동적인 데이터를 저장하고 관리하는데 적합함. |
Stack 영역에 메모리 할당 | Heap 영역에 메모리 할당 |
맵 (Map) : key - value로 데이터를 저장하는 자료구조, HashMap, TreeMap, LinkedHashMap 등
비선형
트리 | 그래프 | |
---|---|---|
정의 | 그래프의 한 종류, 방향성이 있는 비순환 그래프 | 노드와 노드를 연결하는 간선으로 구성된 자료구조 |
방향성 | 방향 그래프만 존재 | 방향, 무방향 모두 존재 |
사이클 | 비순환 그래프만 존재 | 순환, 비순환 모두 존재. |
노드 한개의 자체 순환도 가능. | ||
루트 노드 | 한 개의 루트 노드만이 존재 | 루트 노드의 개념이 없음 |
부모 - 자식 | 루트 노드를 제외한 노드는 1개의 부모 노드만을 가짐 | 부모 - 자식 개념이 없음 |
모델 | 계층 모델 | 네트워크 모델 |
순회 | DFS, BFS 방식의 전위, 중위, 후위 순회 | DFS, BFS |
간선의 수 | N개의 노드를 가진 트리는 항상 N - 1개의 간선을 가짐 | 간선의 개수는 자유, 없을 수도 있음 |
경로 | 임의의 두 노드 간의 경로는 유일 | |
예시 및 종류 | 이진 트리, 이진 탐색 트리, 레드 블랙 트리, 이진 힙 | 지도, 지하철 노선도의 최단 경로, 전기 회로의 소자들, 선수 과목 |