본문 바로가기

프로그래밍/자료구조

자료구조 공부하기 추상 데이터 타입


http://blog.naver.com/wlsgkr91/220898523261


추상 데이터 타입

-정보처리기사 포스팅에서 데이터에 대해 설명하였다.

데이터란 프로그램에서 처리의 대상이 되는 모든 것을 말한다.

-정수일수도,문자열일수도,실수일수도 이렇게 데이터 집합과 이러한 데이터에 적용할 수 있는 연산의 집합을 의미한다. 

-예를 들어 C언어에서는 int라는 데이터 타입에서 데이터는

"정수의 집합" 이고 연산은 "정수간의 연산" 이다. 


자료구조는 이러한 추상 데이터 타입을 프로그래밍 언어로 구현 하는 것이라 할 수 있다. 


추상 데이터 타입 abstract data type : ADT

-데이터 타입의 정의가 그 데이터 타입의 구현으로부터 분리된 데이터 타입을 말한다. 

-사용자들은 추상 데이터 타입이 제공하는 연산만을 사용한다.

-사용자들은 추상 데이터 타입이 제공하는 연산의 명세를 이해 해야 한다. 즉 이것들을 어떻게 사용하는지 알아야한다.

-사용자들은 추상 데이터 타입 내부의 데이터에 접근할 수 없다. 이러한 캡슐화 개념이 추상 데이터 타입 내부의 데이터를 보호한다.

-사용자들은 내부의 데이터에 접근할 수 없지만 추상 데이터 타입을 사용할 수 있다. 즉 데이터가 어떻게 저장되는지 모르더라도 사용은 가능하다. 

만약 다른 사람이 추상 데이터 타입의 구현을 변경하더라도 인터페이스가 변경되지 않으면 사용자들은 여전히 추상 데이터 타입을 같은 방식으로 사용할 수 있다. 


*Java같은 언어에서 클래스라는 개념이 추상 데이터 타입을 나타낸다. 객체 지향 언어에서는 클래스를 사용하여 추상 데이터 타입이 구현된다. 추상 데이터 타입의 객체는 클래스의 멤버 변수로 구현되고 추상 데이터 타입의 연산은 클래스의 멤버 함수로 구현된다. private나 protected와 같은 키워드로 내부 자료의 접근을 제한 할 수도 있다.