본문 바로가기

Basic/자료구조,알고리즘

추상자료형

반응형

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) - 첫 번째 인자로 전달된 주소의 지갑에 돈을 넣는다. - 두 번째 인자로 넣을 동전의 수, 세 번째 인자로 넣을 지폐의 수를 전달한다. - 넣은 만큼 동전과 지폐의 수가 증가한다.





반응형

'Basic > 자료구조,알고리즘' 카테고리의 다른 글

배열과 리스트2  (0) 2018.11.29
배열과 리스트1  (0) 2018.11.29
하노이타워(재귀)  (0) 2018.11.28
하노이타워(재귀)  (0) 2018.11.28
하노이타워(재귀)  (0) 2018.11.28