데이터 구조의 추상 데이터 유형

소개 :
C 언어에서 서로 다른 값에 따라 데이터 유형은 두 가지 범주로 나눌 수 있습니다.

  • 원 자형 :
    정수, 실수, 문자 등 분해 할 수없는 기본형입니다.
  • 구조 유형 : 여러 유형으로 구성되며 분해 될 수 있습니다. 예를 들어, 정수 배열은 여러 정수 데이터로 구성됩니다.
    예를 들어 C 언어의 int a, b 변수 선언은 변수 a와 b에 값을 할당 할 때 int의 값 범위를 초과 할 수 없으며 변수 a와 b 간의 연산은 int 유형에서만 허용 될 수 있음을 의미합니다. 조작.

컴퓨터마다 하드웨어 시스템이 다르기 때문에 어셈블리 언어 나 기계어 데이터 형식과 같은 컴파일러 나 인터프리터를 통해 프로그래밍 언어를 최종적으로 저수준 언어로 변환해야합니다. 그러나 실제로 최종 프로그램이 실행되는 컴퓨터에 관계없이 고급 언어 프로그래머의 목적은 a + b, ab, axb 및 a / b와 같은 두 정수의 산술을 달성하는 것입니다. 컴퓨터 내부에서 정수가 어떻게 표현되는지는 신경 쓰지 않으며 CPU가 1 + 2를 달성하기 위해 수행하는 스위칭 작업 수를 알고 싶지 않습니다. 이러한 작업이 어떻게 구현되는지는 고급 언어 개발자에게 중요하지 않습니다. 따라서 우리는 컴퓨터 언어 나 컴퓨터 언어에 관계없이 대부분 정수 산술, 실수 산술, 문자 산술과 같은 연산에 직면하게 될 것임을 고려할 것입니다.

추상화는 사물의 보편적 본질을 추출하는 것을 말합니다. 문제의 특성을 추출하고 중요하지 않은 세부 사항은 무시하고 특정 사항을 일반화합니다. 추상화는 문제에 대해 생각하는 방법으로 복잡한 세부 사항을 숨기고 목표 달성에 필요한 정보 만 유지합니다.

정의 :
기존 데이터 유형을 추상화하면 추상 데이터 유형이 있습니다.

ADT (Abstract Data Type) : 모델에 정의 된 수학적 모델 및 연산 집합을 나타냅니다. 추상 데이터 유형의 정의는 논리적 특성 집합에만 의존하며 컴퓨터 내부에서 표현되고 구현되는 방식과는 관련이 없습니다.

예를 들어 메인 프레임, 미니 컴퓨터, PC, 태블릿, PDA 또는 스마트 폰 등 모든 컴퓨터는 "정수"유형을 가지며 정수 간의 연산이 필요합니다. 그러면 정수 유형은 실제로 추상입니다. 데이터 유형에 있음에도 불구하고 위에서 언급 한 구현 방법은 컴퓨터마다 다를 수 있지만 정의의 동일한 수학적 속성으로 인해 컴퓨터 프로그래머의 눈에는 모두 동일합니다. 따라서 "추상화"의 의미는 데이터 유형의 수학적 추상화에 있습니다.

또한 추상 데이터 유형은 정의 및 구현 된 데이터 유형뿐만 아니라 소프트웨어 프로그램을 설계 할 때 컴퓨터 프로그래머가 정의한 데이터 유형을 의미하기도합니다. 예를 들어 컴퓨터 그래픽이나지도에 소프트웨어 시스템을 작성할 때 자주 사용합니다. 좌표에. 즉, 3D 시스템에는 항상 x와 y, z의 쌍이 존재합니다.이 세 개의 정수가 항상 함께 나타나기 때문에 우리는 점이라는 추상 데이터 유형을 정의합니다. 여기서 x, y, z는 세 개의 정수 변수입니다. 포인트 데이터 변수를 쉽게 조작하여이 포인트의 좌표를 알 수 있습니다.

사실, 추상 데이터 유형은 문제 분해, 추상화 및 프로그램 설계에 숨겨진 정보의 특성을 구현합니다. 추상 데이터 형은 실생활의 문제를 소규모의 다루기 쉬운 여러 개의 문제로 분해 한 후 컴퓨터로 처리 할 수있는 데이터 모델을 구축하고 각 기능 모듈의 구현 세부 사항을 독립적 인 단위로 취급합니다. , 구체적인 실현을 실현하기 위해 프로세스가 숨겨져 있습니다.

추상 데이터 유형의 표준화 된 설명을 용이하게하기 위해 추상 데이터 유형을 설명하는 표준 형식이 제공됩니다.

ADT 
    抽象数据类型名
Data
    数据元素之间逻辑关系的定义
Operation
    操作1
        初始条件
        操作结果描述
    操作2
        ......
    操作n
        ......
endADT

추천

출처blog.csdn.net/xun08042/article/details/112845938