[자료구조] 002. 추상자료형 (ADT)

코딩휴먼·2023년 7월 2일
0

이번에 정리한 내용은 이번 학기 자료구조 전공수업에서 잠깐 배웠던 ADT이다.
사실은 수업을 들었음에도 잘 모르겠고 검색해서 배웠음에도 잘 모르겠다.


■ 추상 자료형 (Abstract Data Type, ADT)

- 추상적 : 낱낱의 사물에서 공통되는 속성을 뽑아내어 종합한 상태
단순하게 말하자면, "A는 추상적이다" = "A는 핵심적인 특징만을 가진다"
또는, "구체적이다"의 반대 관계가 "추상적이다"라고 볼 수도 있다.
(국어사전에는 딱히 그런 형태로 나와있지는 않은 것 같다)


- ADT : Abstract Data Type.
"자료의 저장 형태"와 "연산 방식"을 추상적으로 표현하는 방식.
한국어로는 "추상 자료형"이라고 한다.
추상 자료형은 내가 필요한 연산이 무엇이냐에 따라 조금씩 달라질 수 있다.

예를 들자면 저번에 썼었던 '전화번호부'
'전화번호부'는 이름과 전화번호를 저장한다
'전화번호부'로 하는 연산은 '전화번호 추가하기' '전화번호 찾기' 등등


- 일차원 배열 ADT의 예시

  • object :
    <index, value> 쌍을 가지는 item 들의 집합
    index는 일차원의 유한 순서 집합이다.
    크기가 n인 배열의 index 집합은 {0, 1, 2, ... , n-1} 이다.
  • function :
    createArray(array, size) 크기가 size인 array를 새로 할당하여 반환
    getValue(array,i) : 배열 array에서 index가 i인 item에 속한 value값을 반환
    setValue(array,i,data) : 배열 array에서 index가 i인 item에 속한 value값에 data 저장
    pushValue(array,data) : 배열 array에서 value값이 지정되지 않은 첫 item의 value값에 data 저장
    ... (필요하다면 추가 가능)

이렇게 표현하는 것을 ADT라고 부른다.


정리

- ADT : "자료의 저장 형태"와 "연산 방식"을 추상적으로 표현하는 방식.
ADT는 object(자료의 저장 형태) 와 function(연산, 알고리즘)으로 구성됨
ADT는 문제의 종류와 상황에 따라 달라질 수 있다.

profile
열심히 하자

0개의 댓글