추상 자료형(Abstract Data Type)
구체적인 기능의 완성과정을 언급하지 않고, 순수하게 기능이 무엇인지를 나열한 것을 추상자료형 또는 간단히 ADT라 한다.
특수한 자료형을 정의하고 이 자료형을 기반으로 하는 연산의 종류를 결정하는 것도 자료형 정의의 일부로 보아야 한다. 자료형과 연산의 종류가 결정되었을 때 자료형의 정의는 완성된다.
위에서 말하는 연산의 의미는 +, -와 같은 C언어에서 제공하는 연산을 의미하는 것이 아니고, 정의한 자료형을 기반으로 제공할 수 있는 기능 관련 연산을 의미하는 것이다. 즉, '자료형'의 정의에 '기능' 혹은 '연산'과 관련된 내용을 명시 할 수 있다는 것이다.
ex)
wallet 자료형의 구조체 정의
typedef struct _wallet
{
int coin100Num;
int bill5000Num;
}Wallet;
Wallet의 ADT
int TakeOutMoney(Wallet * pw, int coinNum, int billNum)
-첫번째 인자로 전달된 주소의 지갑에서 돈을 꺼낸다.
-두번째 인자로 꺼낼 동전의 수, 세번째 인자로 꺼낼 지폐의 수를 전달한다.
- 꺼내고자 하는 돈의 총액이 반환된다. 그리고 그만큼 돈은 차감된다.
void PutMoney(Wallet * pw, int coinNum, int billNum)
-첫번째 인자로 전달된 주소의 지갑에 돈을 넣는다.
-두번째 인자로 넣을 동전의 수, 세번째 인자로 넣을 지폐의 수를 전달한다.
- 넣은 만큼 동전과 지폐의 수가 증가한다.
wallet자료형의 정의에 '기능' 혹은 '연산'을 하는 TakeOutMoney 함수와 PutMoney함수가 ADT에 포함된다.
'Programming > C 자료구조' 카테고리의 다른 글
연결 리스트(Linked list) 1-2 (0) | 2020.01.15 |
---|---|
하노이 타워 (0) | 2020.01.15 |
함수의 재귀적 호출의 이해 (0) | 2020.01.05 |
이진 탐색(Binary Search)알고리즘과 빅-오 (0) | 2020.01.01 |
자료구조와 알고리즘 이해 (0) | 2019.12.31 |