1. 추사자료형
구체적인 기능의 완성과정을 언급하지 않고 , 순수하게 기능이 무엇인지를 나열한 것
을 가리켜 ‘추상 자료형' 또는 간단히 ADT라 한다.
2. 구조체 Wallet의 자료형
“구조체를 기반으로 지갑을 의미하는 Wallet이라는 자료형을 정의
1 2 3 4 5 6 7 8 9 | typedef struct _wallet// 동전 및 지폐 일부만을 대상으로 표현한 지갑 { int coinl00Num;// 100원짜리 동전의 수 int bill5000Num;// 5,000원짜리 지폐의 수 } Wallet; | cs |
컴퓨터 공학적 측면에서 위의 구조체 정의만으로 Wallet이라는 자료형의 정의가 완성되는 것은 아니다. Wallet을 기반으로 하는 연산의 종 류를 결정하는 것도 자료형 정의의 일부로 보아야 하고,이러한 연산의 종류가 결정되었을 때 자료형의 정의는 완성이 된다.
“구조체와 관련된 연산의 종류를 결정하는 것도 자료형 정의의 일부라는 거3
Wallet을 기반으로 제공할 수 있는 기능 관련 연산을 의미하는 것이다. 예를 들면 다음과 같은 것들이다.
• 돈을 꺼내는 연산
int TakeOutMoney(Wallet * pw, int coinNum, int billNum);
• 돈을넣는연산 void PutMoney(Wallet * pw, int coinNum, int billNum)
이렇듯 c언어에서는 구조체에서 필요로 하는 연산을 함수를 이용해 정의한다
그리고 위의 두 연산이 Wallet과 관련이 있는 연산의 전부라고 하면, 이 둘이 더해져서 Wallet에 대한 자료형화 정의는 완성
결론은 ‘자료형’의 정의에 ‘기능’ 혹은 ‘연산’과 관련된 내용을 명시할 수 있다는 것이다
3. 구조체 Wallet의 추상 자료형 정의
따라서 추상 자료 형도 그것에 기능 혹은 연산과 관련된 내용을 명시할 수 있다,.
Wallet의 ADT
Operations:
• int TakeOutMoney(Wallet * pw) int coinNum) int billNum) - 첫 번째 인자로 전달된 주소의 지갑에서 돈을 꺼낸다. - 두 번째 인자로 꺼낼 동전의 수,세 번째 인자로 꺼낼 지폐의 수를 전달한다. - 꺼내고자 하는 돈의 총액이 반환된다. 그리고 그만큼 돈은 차감된다.
• void PutMoney(Wallet * pw^ int coinNum^ int billNum) - 첫 번째 인자로 전달된 주소의 지갑에 돈을 넣는다. - 두 번째 인자로 넣을 동전의 수, 세 번째 인자로 넣을 지폐의 수를 전달한다. - 넣은 만큼 동전과 지폐의 수가 증가한다.