**추상 데이터 타입(abstract data type)**은 값들의 집합과 그 위에서 허용되는 연산을 정의하며, 코드가 아니라 순수하게 동작으로 기술됩니다. 구현은 그 동작을 실현하는 구체적인 구조(array, linked list, tree)입니다.
같은 ADT, 다른 구현
text
ADT "Queue": enqueue, dequeue, peek (FIFO 계약)
구현 A: array + 두 개의 인덱스 (ring buffer)
구현 B: head/tail 포인터를 가진 doubly linked list
둘 다 같은 계약을 지키지만, 비용 프로파일이 다름.
왜 분리하는가
python
:
(): ...
(): ...
(): ...
