사전 지식)
자료형 - 데이터의 종류(데이터와 연산의 집합)
"추상 데이터 타입(ADT : Abstract Data Type)"
▶ 데이터 타입을 추상적(개념으로만 존재하고 실재하지 않는)으로 정의한 것이다. (= 개념으로만 존재하고 실재하지 않는다.)
▷ 데이터의 추상화 : 사용자에게 중요한 기능과 동작만 강조되고, 중요하지 않은 구현 세부 사항은 제거하는 것을 말한다.
▶ 데이터나 연산이 무엇인가는 정의(속성, 특징을 정의) 되지만 데이터나 연산을 컴퓨터 상에서 어떻게(방법을 정의하지 않는다.) 구현할 것인지 세부적 사항은 정의하지 않는다.
추상 데이터 타입의 정의
* 객체 : 추상 데이터 타입에 속하는 속성 또는 특징을 정의한다.
* 연산 : 객체들 사이의 연산을 정의하고, 추상 데이터 타입과 외부를 연결하는 인터페이스 역할을 한다.
▶ 일종의 인터페이스 역할을 하며, 특징과 동작에 대해서 명확히 기술한 것이다.
세탁기와 ADT의 유사성
[세탁기]
* 세탁기의 인터페이스가 제공하는 특정한 작업만을 할 수 있다.
* 사용자는 세탁기를 사용하기 위해 무엇을 해야 하는지 알아야 한다.(전원 버튼 누르기, 시간 다이얼 돌리기)
* 사용자는 세탁기 내부를 볼 수 없으며, 내부에서 무슨 일이 일어나는지 몰라도 이용할 수 있다.
* 내부의 기계장치가 교환된다고 하더라도 인터페이스가 바뀌지 않으면 그대로 사용할 수 있다.
[ADT]
* 사용자들은 ADT가 제공하는 연산(기능)만 사용할 수 있다.
* 사용자들은 ADT가 제공하는 연산을 사용하는 방법을 알아야 한다.
* 사용자들은 ADT 내부의 데이터에 접근할 수 없다.
* 사용자들은 ADT가 어떻게 구현되는지 모르더라도 ADT를 사용할 수 있다.
* ADT의 구성을 변경하더라도 인터페이스가 변경되지 않으면 사용자들은 그대로 사용할 수 있다.
참고 서적 : <C언어로 쉽게 풀어쓴 자료구조>
'Programming > 자료구조' 카테고리의 다른 글
[자료구조] 06. 재귀 (Recursion) (0) | 2021.10.23 |
---|---|
[자료구조] 05. 알고리즘의 효율성 (최선, 평균,최악) (0) | 2021.10.22 |
[자료구조] 04. 빅오메가 표기법 & 빅세타 표기법 (0) | 2021.10.21 |
[자료구조] 03. 알고리즘의 성능 분석(시간 복잡도, 빅오 표기법) (0) | 2021.10.20 |
[자료구조] 01. 자료 구조와 알고리즘 (0) | 2021.10.12 |