- 자료 구조는 자료(data)를 효율적으로 관리하기 위한 구조를 말함
잘 관리된 자료구조는 저장, 삭제, 탐색 등에 용이함.
또한 목적에 맞게 사용한 좋은 자료구조는 실행시간 단출 또는 메모리 용량 절감에 효과가 있음
- 자료 구조는 크게 선형 자료구조과 비선형 자료구조로 구분됨
1) 선형 자료구조: 앞뒤로 배치되에 있는 데이터가 1:1로 대응되는 자료구조.
- 배열
: 데이터가 앞뒤로 배치되어 있고, 물리적으로도 인접하게 배치되어 있음
- 연결 리스트
: 앞 데이터가 뒤에 연결될 데이터의 링크 주소를 갖고 있어, 링크로 연결되어 있는 구조
- 스택, 큐, 데크
: 배열이나 연결 리스트를 가지고 특정 규칙을 갖는 자료 구조. 데이터 출입구조가 선입선출인 경우(큐), 후입선출인 경우(스택), 양쪽으로 들어왔다 나가는 구조(데크)인 경우에 따라 구분
- 해시 테이블
: 키와 값이 해쉬 함수 규칙에 따라 테이블에 들어가는 구조
2) 비선형 자료구조: 자료가 1: N 또는 N:N으로 연결된 자료구조
- 트리
: 트리 형식으로 데이터(노드)가 1:N으로 계층적으로 매핑되어 있는 구조
- 그래프
: 노드들이 계층적으로 연결되지 않고 옆으로 또는 위의 노드들과 연결되면서 사이클을 이루는 자료구조
- 힙/ 우선순위 큐
: 트리 구조에서 작은 값이 먼저 나가거나 큰 값이 먼저 나가는 등 규칙이 적용된 자료구조
- 트라이
: 트리의 일종으로 문자열을 탐색하거나 저장하기 위해 특화되어 있는 자료구조