[CS] 자료 구조 - 추상 자료형과 자료 구조

Janet·2023년 9월 2일
0

CS

목록 보기
13/17
post-thumbnail

추상 자료형(ADT)과 자료 구조(Data Structure)

Stack이나 Queue, Tree의 경우는 구현 방법이 명시되어 있지 않으므로 추상 자료형에 해당하며,
Array이나 Linked list의 경우 다음 데이터의 위치 저장 방식이 명확하게 정해져 있으므로 자료 구조에 해당된다.

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

  • 문제를 해결하기 위해 필요한 자료의 형태 및 연산을 수학적으로 정의한 모델이다.
  • 자료 구조의 한 형태로 해당 구조의 행동 양식(데이터의 논리적 특성과 연산의 기능)을 정의하지만, 내부 구현 방법은 정의하지 않는다.
  • 실제 프로그래밍 언어에서 존재하지 않는 스택(stack), 큐(queue)와 같이 일종의 ‘규칙’. 구현 방법이 명시되어 있지 않으므로 추상 자료형에 해당한다.
    • Stack: 스택은 추상 자료형으로서, 데이터를 한쪽 끝에서만 삽입하고 삭제할 수 있는 자료 구조이다. Stack의 ADT는 "push"와 "pop" 연산을 정의한다. 스택은 주로 Array 또는 Linked List와 같은 자료 구조를 기반으로 구현된다.
    • Queue: 큐는 추상 자료형으로서, 데이터를 한쪽 끝에서 삽입하고 다른 한쪽 끝에서 삭제할 수 있는 자료 구조이다. Queue의 ADT는 "enqueue"와 "dequeue" 연산을 정의한다. 큐도 주로 Array 또는 Linked List를 기반으로 구현된다.

👉🏻 정리하자면, 추상 자료형논리적 개념을 정의하고, 자료 구조는 이러한 논리적 개념을 실제로 구현하기 위한 방법을 제공한다. 즉, 추상 자료형어떤 연산을 지원하는지를 명시하고, 자료 구조는 이러한 연산을 어떻게 구현할지에 대한 구체적인 방법을 제공한다.

profile
😸

0개의 댓글