본문 바로가기
Programming/자료구조

[자료구조] 02. 추상 데이터 타입

by happy_jinsu 2021. 10. 20.

사전 지식)

자료형 - 데이터의 종류(데이터와 연산의 집합)

"추상 데이터 타입(ADT : Abstract Data Type)"

▶ 데이터 타입을 추상적(개념으로만 존재하고 실재하지 않는)으로 정의한 것이다. (= 개념으로만 존재하고 실재하지 않는다.)

     ▷ 데이터의 추상화 : 사용자에게 중요한 기능과 동작만 강조되고, 중요하지 않은 구현 세부 사항은 제거하는 것을 말한다.

▶ 데이터나 연산이 무엇인가는 정의(속성, 특징을 정의) 되지만 데이터나 연산을 컴퓨터 상에서 어떻게(방법을 정의하지 않는다.) 구현할 것인지 세부적 사항은 정의하지 않는다. 

추상 데이터 타입의 정의

* 객체 : 추상 데이터 타입에 속하는 속성 또는 특징을 정의한다.

* 연산 : 객체들 사이의 연산을 정의하고, 추상 데이터 타입과 외부를 연결하는 인터페이스 역할을 한다.

▶ 일종의 인터페이스 역할을 하며, 특징과 동작에 대해서 명확히 기술한 것이다.

세탁기와 ADT의 유사성

<세탁기와 ADT의 유사성>

[세탁기]

* 세탁기의 인터페이스가 제공하는 특정한 작업만을 할 수 있다.

* 사용자는 세탁기를 사용하기 위해 무엇을 해야 하는지 알아야 한다.(전원 버튼 누르기, 시간 다이얼 돌리기)

* 사용자는 세탁기 내부를 볼 수 없으며, 내부에서 무슨 일이 일어나는지 몰라도 이용할 수 있다.

* 내부의 기계장치가 교환된다고 하더라도 인터페이스가 바뀌지 않으면 그대로 사용할 수 있다.

 

[ADT]

* 사용자들은 ADT가 제공하는 연산(기능)만 사용할 수 있다.

* 사용자들은 ADT가 제공하는 연산을 사용하는 방법을 알아야 한다.

* 사용자들은 ADT 내부의 데이터에 접근할 수 없다.

* 사용자들은 ADT가 어떻게 구현되는지 모르더라도 ADT를 사용할 수 있다.

* ADT의 구성을 변경하더라도 인터페이스가 변경되지 않으면 사용자들은 그대로 사용할 수 있다.

 


참고 서적 : <C언어로 쉽게 풀어쓴 자료구조>