2015-02-01 3 views
2

내가 ADTS와 데이터 구조에 대해 읽은 내용은 여기에서 분명하지 않다. 개인 데이터 멤버 (배열)를 가진 클래스가 있다고 가정하고 데이터 멤버의 요소를 맨 위에서 만 밀어 내고 터지는 것을 제한하는 함수가 있습니다. 이것은 스택, 특정 데이터 구조입니다. 하지만 ADT가 될 수도 있습니다.데이터 구조를 인스턴스화 된 추상 데이터 형식이라고 부를 수 있습니까?

"ADT는 데이터 모음 및 해당 데이터 집합입니다." ("데이터 추상화 및 C++로 문제 해결", Carrano, 17 페이지).

그러나 Wikipedia는 ADT를 "순전히 이론적 인 개체"라고 부르며, 위의 클래스 인 ADT는 구현체, 개체, 데이터 구조체입니까?

+0

이런 종류의 용어로 너무 말리지 마십시오. CS는 우리가 "표준"용어로 수렴하지 못한 젊은 주제입니다. –

+0

찰리 마틴 감사합니다. 중첩과 약간의 혼란이있는 것 같지 않습니다. – beatleman

+0

기술 논문은 항상 전문 용어 섹션으로 시작하여 ADT와 같은 용어로 생각하는 것을 설명하는 것입니다. –

답변

0

데이터 구조는 이고 데이터 구성은입니다. ADT는 데이터 구조의 특정 종류 (및 사용)입니다.

0

글쎄, 일종의. ADT는 상태 공간에 대한 설명과 해당 상태 공간에 대해 정의 된 작업으로 구성된 설명입니다. 따라서 정수는 표현할 숫자의 범위에 해당하는 상태 집합이며 덧셈, 뺄셈 및 곱하기 연산과 함께 사용됩니다. (우리는 우리가 의미하는 정수를 정확하게 정의해야하기 때문에 나누기를 무시할 것입니다.)

컴퓨터 프로그램의 정수는 실제로 메모리의 구체적인 덩어리이며 구현하기위한 적절한 코드라는 점에서 인스턴스입니다 ADT.

프레드 브룩스는 추상화이 사양대로 완전히 정확한 유형을 설명하기 때문에 지능이의 Int 인 ADT는 구현있는 좋은 구별 및 코드 (마이크로 코드, 지침) 실제로 할 수 있습니다 추가 등은 실현입니다. 불행히도, 그 구별은 Fred의 이전 학생을 제외하고는 실제로 일반적으로 사용되지 않습니다.

0

추상 데이터 형식은 해당 추상 데이터 형식의 모든 구현에 공통된 동작 및 속성 집합으로 정의됩니다. .NET List 데이터 형식은 길이가 있고, 데이터 가져 오기, 데이터 가져 오기, 데이터 가져 오기, 데이터 순서가 정렬 된 데이터에 대한 작업이 있습니다.
std :: list <>은 추상 데이터의 다른 구현입니다 유형 목록.
다른 프로그래밍 언어로 목록 유형을 찾았습니까? 추상 데이터 유형 목록에 대한 지식과 다른 언어로 작동하는 방식을 통해 알 수 있습니다.

그리고 그 언어로 해당 목록이 화면에 그림을 그리기 시작한다면, 당신은 정당 시스템에서 해당 언어를 삭제할 것

)

당신은 고정 많은 추상 데이터 유형의 의미를 고려할 수 있습니다. 목록, 집합, 스택, 대기열 등. 대조적으로 추상 데이터 형식에 대한 집단 수용이 있기 전에 의미가 다를 수 있습니다.

예를 들어, 추상 데이터 유형 "퍼지 집합"의 정의에 대한 의견을 폴링 했습니까? 단일 답변을 얻을 가능성이 거의 없습니다.

질문에 대한 좀 더 이론적 인 접근법을 찾으려면 "종류"에있는 자료를 검색하는 것이 좋습니다.예를 들어, 목록에 포함될 특정 데이터 유형 'a에 적용되는 일반 목록은 구체적 유형 목록'< '을'< 목록 적용시 구체 유형 '을 구성 할 때 유형 생성자라고 할 수 있습니다. 유형' a, List <>이 더 높은 종류의 유형입니다. (나는 확실히 그 하나의 권리를 얻었기를 바란다. ..). 그러나이 문제에 대해 더 자세히 설명하는 것은이 답변의 범위를 벗어납니다.

2

아니요. '인스턴스화 된 요약'은 필수적으로 모순입니다.

+0

간단히 추상 (클래스)이지만 ADT처럼 보입니다. 콘크리트 (객체)가 데이터 구조라고 불릴 것인지 물어 보았습니다. – beatleman

+0

내 대답은 변경되지 않습니다. 예를 들어 'instantized'를 'concrete'로 변경하면 '구체 추상'이 생깁니다. 이는 또한 모순이기도합니다. 여기에 새로운 용어를 발명 할 필요가 없습니다. – EJP

관련 문제