배열(Array)
- 메모리 공간에서 주소가 연속적으로 저장되는 데이터 구조
- 장점 : 인덱스를 통한 빠른 접근속도
- 단점 : 삭입/삭제시 느린 속도(연속된 메모리 특성 때문)
연결리스트(Linked List)
- 값과 다음 값의 주소를 가지는 구조. 메모리는 프로그램 실행시마다 변경(동적할당)
ex) [값: 100 | 주소: 200] -> [값: 200 | 주소: 150] -> [값: 150 | 주소: nil]
- 장점 : 삽입/삭제시 빠름(주소값만 변경)
- 단점
- 인덱스 접근속도 느림(원하는 값에 도달할 때 까지 순회)
- 주소값을 저장할 추가적인 메모리 필요
스택(Stack)
- 선입후출(또는 후입선출) 자료구조 - First In Last Out
PUSH(삽입), POP(삭제) 사용
- 시스템 스택 : 함수 호출시 복귀할 주소가 보관됨 (+ 함수의 지역변수, 매개변수 등)
- iOS에서 UINavigationController도 스택으로 화면을 관리
큐(Queue)
- 선입선출 자료구조 - First In First Out
enqueue(추가), dequeue(삭제)
- 운영체제에서는 프로세스 관리시 사용(스케줄링)