추상 데이터 유형 : ADT는 특정 구현과 관계없이 정확하게 지정된 일련의 데이터 값 및 관련 작업으로 정의 될 수 있습니다. 따라서 추상 데이터 유형은 정보를 체계적으로 수집하고 해당 정보를 관리하는 데 사용되는 일련의 작업입니다. 일련의 작업은 ADT의 인터페이스를 정의합니다. ADT가 인터페이스의 조건을 충족하는 한 실제로 ADT가 어떻게 구현되는지는 중요하지 않습니다. ADT에서 데이터 값과 연산은 컴퓨터 언어로 구현되는 것이 아니라 수학적으로 정밀하게 정의되므로 연산의 영향, 프로그램이 데이터 유형을 구현하는지 여부에 따라 다른 추상 데이터 유형과의 관계에 대해 추론 할 수 있습니다.
추상 데이터 유형 (ADT)과 콘크리트 데이터 유형의 기본적인 차이점은 후자가 콘크리트 표현을 볼 수있는 반면, 전자는 표현을 숨길 수 있다는 것입니다. ADT는 순수한 ADT 또는 업데이트 가능한 ADT 일 수있다. 순수한 ADT는 모든 작업이 순수한 기능인 것입니다. 이는 작업에 부작용이 없음을 의미합니다. 특히 입력 인수를 수정하거나 업데이트하지 않습니다. ADT (또는 다른 유형)의 새로운 값인 출력을 생성하기 위해 이러한 인수를 사용합니다. 대부분의 콘크리트 유형은 순수합니다. 예를 들어, 정수에 대한 조작은 실제로 정수를 수정하지 않습니다. 대신 '+'와 같은 모든 작업은 새로운 출력을 생성합니다.
업데이트 가능한 ADT는 일부 작업이 실제로 ADT의 값을 변경하는 것입니다. 예를 들어 스택을 인수로 받아서 수정 한 'pop'이라는 작업이 있다고 가정합니다. 우선 순위가 가장 높은 항목을 제거하여 ( "제자리에", "파괴적으로") 이 작업은 불완전한 것으로 간주되며 전체 ADT도 불완전합니다. ADT는 사용자 정의 ADT 일 수있다.
Abstract Data Type은 다음 두 가지 조건을 만족하는 데이터 유형이라는 것을 알고 있습니다.
유형과 연산의 표현 또는 정의는 단일 구문 단위에 포함됩니다.
형식의 개체 표현은 형식을 사용하는 프로그램 단위에서 숨겨 지므로 해당 개체에 대해 가능한 직접 작업 만 형식 정의에 제공됩니다.
사용자 정의 추상 데이터 유형은 다음을 제공해야합니다.
프로그램 단위가 유형의 변수를 선언 할 수 있지만 이러한 변수의 표현을 숨기는 유형 정의.
유형의 객체를 조작하기위한 일련의 작업입니다.
사용자 정의 추상 데이터 유형의 예는 구조입니다. 'C'는 int, char, float 및 double의 네 가지 기본 유형을 제공합니다. 그러나 'C'는 프로그래머에게 자신의 유형을 정의 할 수있는 기능도 제공합니다. 구조는 그러한 예 중 하나입니다. 구조는 각 파트가 기존 유형 인 여러 파트의 집합입니다.
struct abc
{int x;
float y;
};
위의 구조 정의는 변수를 만들지 않고 새로운 유형을 만듭니다. 이 유형의 변수는 내장 유형의 변수와 유사한 방식으로 작성 될 수 있습니다.
struct abc a;
typedef 키워드를 사용하면 새로운 유형에 대한 새로운 유형 이름을 만들 수 있습니다.
예를 들면 다음과 같습니다.
typedef struct abc AB;
여기서 AB는 새 유형을 작성하는 데 사용할 수있는 새로운 유형 이름입니다.
AB b;
데이터 구조 : 다음은 데이터 구조의 특징입니다.
여기에는 원자 또는 다른 데이터 구조 (여전히 도메인)가 될 수있는 구성 요소 데이터 항목이 포함됩니다.
하나 이상의 구성 요소 항목에 대한 일련의 작업.
구성 요소가 서로 연관되는 방식 및 전체 구조 (어설 션)에 대한 규칙을 정의합니다.
데이터 구조 :
데이터 구조는 정적이거나 동적 일 수 있습니다. 정적 데이터 구조는 크기가 고정되어 있습니다. 이 의미는 정적 수정 자의 의미와 다릅니다. 배열은 정적입니다. 보유 할 수있는 요소 수를 정의한 후에는 숫자가 변경되지 않습니다. 동적 데이터 구조는 내용에 따라 실행 시간에 늘어나거나 줄어 듭니다. 동적 데이터 구조는 링크를 사용하여 구현됩니다.
데이터 구조는 또한 선형 데이터 구조 및 비선형 데이터 구조로 분류 될 수있다. 선형 데이터 구조에서 모든 구성 요소는 첫 번째 요소와 마지막 요소를 제외하고 고유 한 선행 작업 및 후속 작업을 갖지만, 비선형 데이터 구조의 경우 요소가 우리가 사용하는 방식에 의해 제한되는 원하는 방식으로 배열 될 수 있으므로 그러한 제한이 없습니다. 그러한 유형을 나타냅니다.