본문 바로가기
컴퓨터 공학/Algorithm

[ 알고리즘 ] 추상 자료형(ADT) 란?

by hahehohoo 2020. 7. 9.
반응형

추상 자료형(ADT) 란?

 

추상 자료형이란 구체적인 완성 과정을 언급하지 않고, 순수하게 기능이 무엇인지 나열한 것입니다. 

 

예를 들어 설명하기 위해 C언어 기반으로 구조체 하나를 정의하겠습니다.

 

 

구조체를 기반으로 리모콘을 의미하는 구조체를 정의하였습니다. Remote이라는 자료형의 정의인 셈입니다. 하지만 컴퓨터 공학적 측면에서는 자료형의 정의가 구조체 정의만으로 완성되는 것이 아닙니다. Remote을 기반으로 하는 연산의 종류를 결정하는 것도 추가해야합니다.

즉, 아래의 두 가지를 다 충족시켜야 합니다. 

 

1. 구조체의 정의

2. 그 구조체와 관련된 연산의 종류

 

여기서 연산은 +,- 의 기본 연산이 아니라 Remote을 기반으로 제공할 수 있는 기능 관련 연산을 의미합니다.

아래와 같은 것들이 될 수 있습니다. 

 

int VolumeUp(Remote * pw, int Vol);

void ChannelChange(Remote * pw, int Channel);

 

 

 

 

 

 

 

 


그럼 이제 Remote의 추상 자료형을 정의하겠습니다. 

 

[ Remote의 ADT ]

int VolumeUp(Remote * pw, int Vol);

- 첫 번째 인자로 전달될 주소의 리모콘에서 음량을 높인다.

- 두 번째 인자로 높일 음량 수치를 전달한다.

- 올리고자 한 음량이 반환된다. 그만큼 음량은 높아진다.

 

void ChannelChange(Remote * pw, int Channel);

- 첫 번째 인자로 전달될 주소의 리모콘에서 음량을 높인다. 

- 두 번째 인자로 변경할 채널 번호(수)를 전달한다. 

- 변경하고자 한 채널이 반환된다. 채널이 바뀐다. 

 


 

Remote를 기반으로 음량을 높이고, 채널을 바꾸는데 있어서 Remote의 멤버가 어떻게 구성되는지 알 필요는 없습니다. 

이렇게 사용만 하면되니까요. 

 

int main(void) {
    Remote myRemote;
    ...
    VolumeUp(&myRemote, 6);
    ...
    ChannelChanage(&myRemote, 24);
    ...
}

 

 

------------------------------

알고리즘 개념 모아보기 

------------------------------

 

 

 

 

반응형


댓글