# 데이터 타입(Data type)이란
: 자료와 연산들의 모음
예를 들어, int 형 데이터 타입은 .. -2, -1, 0, 1, 2 ... 와 같은 정수 자료와 +, -, /, * % 등의 연산들의 모음이다.
# 추상 데이터 타입(Abstract Data Type, ADT)이란
: 추상적으로 수학적으로 정의된 데이터 타입
: 어떠한 자료와 자료의 연산이 정의되어 있다. 연산은 추상 데이터 유형과 외부 간의 인터페이스 역할을 한다. 실제로 자료와 연산이 어떻게 구현되었는 지는 사용자가 알 필요가 없다.
예를 들어, 자연수를 추상 데이터 타입으로 정의하자면,
자료는 0부터 INT_MAX까지의 정수
연산은 zero(), is_zero(), add(x,y), sub(x,y), equal(x,y), successor(x) 등이 될 수 있다.
일상 생활에서 추상 데이터 타입과 비슷한 사례를 찾아보면 자판기가 있을 수 있다. 자판기 안에서 어떤 일이 일어나는 지 모르지만, 원하는 음료수 버튼을 누르면 해당 음료수가 나오도록 되어있다. 이 때 버튼을 누르는 것이 연산을 통해 외부에서 추상 자료형 내부의 자료에 접근하는 것이라고 할 수 있다. 따라서 추상 자료형의 인터페이스(연산, 사용법)만 알면, 내부 자료나 실제 구현을 몰라도 사용할 수 있다.
이외에 선풍기도 마찬가지다. 선풍기를 사용할 때 버튼을 눌러서 turn_on(), turn_off() 등의 기능을 사용하지만 어떻게 구현된지는 모른다. 이렇듯 자료와 연산이 추상적으로 구현되어 있어, 실제 내부 구현은 모르지만 연산을 통해 자료에 접근할 수 있는 자료 형태를 추상 자료형이라고 한다.
# 프로그래밍 언어에서 ADT 구현
: C에서는 struct 를 활용하여 구현
: C++이나 java 에서는 class 를 활용한다.
# 이화여대 민동보교수님 2018년 2학기 Data Structure 수업자료와 도서 뇌를 자극하는 알고리즘 등 참고하여 작성
'Computer Science&Engineering > 자료구조' 카테고리의 다른 글
알고리즘의 성능 분석 (시간복잡도 계산 방법) (0) | 2021.02.28 |
---|---|
자료구조와 알고리즘은 무엇인가 (0) | 2021.02.27 |
자료구조(Data Structure) 정리 시작 (2) | 2021.02.27 |