ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1.1 추상 자료형
    자료구조(C)/자료구조와 알고리즘 2020. 7. 6. 15:23

    추상 자료형?

    먼저 자료형(data type) 말 그대로, "자료(data)의 종류" "데이터 타입"이다. 

    자료형에는 기초 자료형, 파생 자료형, 사용자 정의 자료형

     

    기초 자료형: char, int, float, double

    파생 자료형: 배열, 포인터

    사용자 정의 자료형:구조체 , 공용체, 열거형

     

    자료형을 작성하 때는 실행 가능한 연산에 대해서도 신경 써야 한다. 데이터의 종류가 결정되면 그 데이터와 관련된 연산도 달라진다.

    복잡한 자료형을 구현할 때는 연산이 연산자가 아니고 함수(function)로 작성한다.

     

    ADT(Abstract Data Type) 추상 자료형?

    ADT

    추상적, 수학적으로 자료형을 정의한 것이다.

    자료구조에는 이러한 추상 자료형을 프로그래밍 언어로 구현할 수 있다.

     

    추상화(abstraction)

    어떤 시스템의 간략화된 기술 또는 명세로서 시스템의 정말 핵심적인 구조나 동작에만 집중하는 것이다. 좋은 추상화는 사용자에게 중요한 정보는 강조되고 반면 중요하지 않는 구현 세부 상항은 제거되는 것이다.

    이를 위해 정보은닉기법(information hiding)이 개발되었고 추상 자료형의 개념이 발전되었다.

     

    ADT는 실제적인 구현으로부터 분리되어 정의된 자료형을 말한다.  즉 자료형을 추상적(수학적)으로 정의함을 의미한다.

    ADT에서는 데이터나 연산이 '무엇'인지는 정의되지만 데이터나 연산을 '어떻게' 컴퓨터 상에서 구현할 것인지는 정의되지 않았다.

    ex) 연산을 정의할 때 연산의 이름, 매계 변수, 반환형은 정의하지만 연산을 구현하는 구체적인 코드는 주어지지 않는 것이다.

     

    ADT는 먼저 ADT라는 이름에서부터 시작한다. ADT 안에는 객체(objects)와 함수(function)들이 정의된다.

     

    객체(objects):

    주로 집합의 개념을 사용하여 정의된다. 이후에는 함수들이 정의한다.

    함수(function):

    연산을 의미한다. 여기에는 함수의 이름, 함수의 매계 변수, 함수의 반환형, 함수가 수행 하는 기능의 기술 등이 표함 된다. ( " :: = " 기호는 "~으로 정의된다"를 의미한다.)

     

    ADT가 구현된 때 보통 구현 세부사항을 외부에 알리지 않고 외부와의 인터페이스만을 공개하게 된다.

    추상 자료형의 구현 방법은 언제든지 안전하게 변경될 수 있다. 또한 인터페이스만 정확하게 지켜진다면 ADT가 여러 가지 방법으로 구현될 수 있음을 뜻한다. -> 이것이 정보은닉의 기본개념이다.

    '자료구조(C) > 자료구조와 알고리즘' 카테고리의 다른 글

    1.2 알고리즘의 성능 분석  (0) 2020.07.06
    1.0자료구조와 알고리즘  (0) 2020.07.06

    댓글

Designed by Tistory.