자료들을 정리하고 조직화하는 구조를 지칭
- 단순 자료구조
- 복합 자료구조(ex: 컨테이너)
- 선형(linear) 자료구조 : 항목들을 순서적 으로 나열하여 저장
ex: 스택, 큐, 덱, 리스트- 비선형(non-linear) 자료구조 : 트리(계층 구조), 힙(우선순위 큐), 이진 탐색트리 & AVL트리(탐색), 그래프(복잡한 연결관계 표현)
문제를 해결하는 절차
- 알고리즘 기술 방법
- 자연어(영어, 한국어) : 편리, 의미가 애매
- 흐름도(flow chart) : 알고리즘이 복잡하면 보기 어려움
- 유사 코드(pseudo-code) : 자연어보단 체계적, 프로그래밍 언어보단 덜 엄격함
- 프로그래밍 언어(C, Java, Python)
추상적으로 정의한 자료형
- 어떤 자료들과 자료에 가해지는 연산들을 구체적으로 표시
- 데이터: 가방(Bag)
- 연산: insert(), remove(), contains(), count(), etc...
- ADT는 구현에 관한 세부사항을 감추고 사용자에게 간단한 인터페이스만 제공
⚡️ Why? 사용자는 굳이 내부를 뜯어보고 구현원리를 알 필요가 X
→ 정보은닉의 기본 개념