추상 자료형과 자료형

추상 자료형(ADT)

  • Abstract Data Type
  • 객체와 그 객체를 조작하는 연산을 함께 수학적으로 정의하고 명세한 것.
  • 자료구조 구현 전의 설계 단계로 볼 수 있다.
  • 객체 자체가 어떻게 구현되는지에 대한 구체적인 세부사항은 드러내지 않는다.
  • 단지 객체에 대한 정의와 그 객체를 어떻게 이용하는지 (조작하는 연산)만을 제공한다.
  • 즉 추상 자료형은 객체의 구조와 연산을 정의하는 이론적 모델이다.

자료형(DT)

  • Data Type
  • 자료형은 데이터가 저장되고 조작되는 형식을 정의한 것이다.
  • 자료형은 자료구조를 구현한 단계로, 프로그래밍 언어에서 이를 선언하고 사용할 수 있다.
  • 추상 자료형의 설계를 바탕으로 자료형이 구체적으로 구현된다.
  • 즉 자료형은 프로그램에서 사용하는 데이터(혹은 객체) 형식이다.

예시

추상 자료형의 예시

1
2
3
4
5
6
7
8
9
10
1. 스택 (Stack)

(1) 정의
- 데이터를 LIFO(Last In, First Out) 방식으로 처리하는 자료형

(2) 주요 연산
- 푸시(push): 스택에 요소를 추가.
- 팝(pop): 스택에서 가장 상단의 요소를 제거하고 반환.
- 탑(top/peek): 스택의 가장 상단 요소를 반환(제거하지 않음).
- 비어 있는지 확인(empty): 스택이 비었는지 확인.
1
2
3
4
5
6
7
8
9
10
2. 큐 (Queue)

(1) 정의  
- 데이터를 FIFO(First In, First Out) 방식으로 처리하는 자료형.

(2) 주요 연산
- 인큐(enqueue): 큐에 요소를 추가.
- 디큐(dequeue): 큐에서 가장 앞의 요소를 제거하고 반환.
- 프론트(front): 큐의 가장 앞 요소를 반환(제거하지 않음).
- 비어 있는지 확인(empty): 큐가 비었는지 확인.

Reference

자료구조 (강태원, 정광식 공저)