-
[자료구조] 추상 자료형 (ADT)자료구조 2022. 1. 25. 15:10
추상 자료형이란?
추상 자료형은 기계와 기계설명서의 모음집이라고 비유할 수 있다.
반죽기를 기계의 예로 들어보겠다.
반죽기의 설명서에는 버튼을 누르면 음식이 섞인다는 말이 쓰여있다.
하지만 어떤 설명서에서도 어느 종류의 모터가 들어갔는지, 어떤원리로 작동되는지는 알려주지 않는다.
이처럼 추상자료형은 무언가의 기능을 설명해놓은 것이다. 대신 그 기능의 작동원리는 알지 못한다.추상 자료형의 장점
그렇다면 왜 반죽기의 설명서에는 모터의 종류와 작동 원리가 쓰여있지 않을까?
굳이 알 필요가 없기 때문이다.
사용자의 목적은 음식을 섞는 것이지 반죽기를 만드는 것이 아니다.
이처럼 추상 자료형은 원리를 알지 못해도 사용법만 이해하면 그 기능을 쉽고 편하게 사용할 수 있도록 해준다.
또한 사용자는 반죽기의 원리를 알지 못하고 버튼만 누를 수 있다.
이 때문에 사용자가 함부로 기계의 내부를 망가뜨리거나 조작할 수 없다.
이처럼 추상 자료형은 기능의 보안을 향상시키고 실수로 인한 코드 변형의 위험성을 낮춘다.
게다가 반죽기는 재사용을 할 수 있다. 언제든지 필요할 때마다 꺼내 쓸 수 있다.
만약 반죽기가 일회용이라면 음식을 섞고 싶을때마다 반죽기를 만들어야 할 것이다.
이처럼 추상 자료형은 기능을 재사용할 수 있게 해준다.추상 자료형 구현 예시
추상자료형은 프로그래밍 언어에 따라 여러가지 방법으로 구현된다.
그 중 객체지향 언어(C++, JAVA)에서는 "클래스" 개념을 사용하여 구현하게 된다.
앞에서 비유했던 반죽기의 추상 자료형을 c++ 기반으로 만들어보았다.class 반죽기 { private: int button // on/off 여부 저장 위함 public: mix_it(); // 전원 on/off }
이제 클래스 반죽기의 전원을 키기 위해 main함수에서 mix_it()을 적기만 하면 된다.
이 외의 대표적인 추상 자료형은 리스트, 스택, 큐, 맵, 우선순위 큐, 집합 등이 있다.참고자료
c언어로 쉽게 풀어쓴 자료구조
https://velog.io/@lisapark6956/추상자료형추상자료형이란?
추상자료형에 대해서! 추상 자료형의 정의와 필요성,추상 자료형을 사용하는 이유, 추상자료형의 예 에 대해서 학습한 내용을 정리한 글입니다.🥸☕️
velog.io
https://www.hanbit.co.kr/media/channel/view.html?cms_code=CMS9536454095&cate_cd=001추상 자료형
저자: 주우석 / 명지대 컴퓨터공학과 교수출처: IT CookBook, C C++로 배우는 자료구조론(한빛미디어, 2004)자료구조론에서 가장 중요한 개념 중 하나가 바로 추상 자료형(抽象 資料型, ADT: Abstract Data Ty
www.hanbit.co.kr
'자료구조' 카테고리의 다른 글
[자료구조] 트리, 이진트리 (0) 2022.05.20 [자료구조] 큐(queue) (0) 2022.05.01 [자료구조] 스택(stack) (0) 2022.04.26 [자료구조] 재귀호출(recursion) (0) 2022.01.29 [자료구조] 시간복잡도 함수 T(n), 빅오 표기법 O(n) (0) 2022.01.26