1. 배열, 리스트
- index로 임의의 원소를 접근할 수 있다.
- 연산자 []로 접근할 수 있다. 상수시간(O(1))에 값을 알 수 있다.
- 삽입: push, shift
- 삭제: pop, unshift
2. Stack, Queue, deQueue
Stack
- LIFO(Last In First Out)
- 마지막에 들어간 것이 첫번째로 나오는 특징
push
: 아래에서부터 차곡차곡 삽입된다.
pop
: 맨 위 값(가장 나중에 들어온 값)에서부터 삭제한다.
Queue
- FIFO(First In First Out)
- 처음 들어간 것이 첫번째로 나오는 특징 (은행 줄 기다리기)
push
: 삽입은 아래서부터 차곡차곡 쌓인다.
pop
: 삭제 역시 아래의 값(가장 먼저 들어온 값)부터 수행한다.
deQueue
- stack + queue 자료구조
- 삽입은 위, 아래로 수행할 수 있다.
- 삭제 역시 위, 아래로 수행할 수 있다.
3.linked list(연결리스트)
- 데이터를 저장할 때, 각 요소가 다음 요소의 주소(포인터)를 함께 저장해서 연결된 형태로 구성된 자료구조
- 인덱스를 바로 접근할 수 없다.
- 포인터로 요소들을 연결해 만든 유연한 자료구조
→ 삽입/삭제엔 강하지만, 인덱스 접근은 느림