Подтвердить что ты не робот

Что такое ADT? (Абстрактный тип данных)

В настоящее время я изучаю абстрактные типы данных (ADT), но я вообще не понимаю эту концепцию. Может кто-нибудь объяснить мне, что это на самом деле? Также, что такое коллекция, сумка и список ADT? в простых терминах?

4b9b3361

Ответ 1

Абстрактный тип данных (ADT) - это тип данных, в котором определяется только поведение, но не реализация.

Противоположностью ADT является Конкретный тип данных (CDT), где он содержит реализацию ADT.

Примеры:
Array, List, Map, Queue, Set, Stack, Table, Tree, and Vector являются ADT. Каждый из этих ADT имеет много реализаций, т.е. CDT. Контейнер представляет собой высокоуровневую ADT над всеми ADT.

Пример из реальной жизни:
book is Abstract (Телефонная книга является реализацией)

enter image description here

Ответ 2

Тип данных Abstact В статье Wikipedia есть что сказать.

В информатике абстрактный тип данных (ADT) является математической моделью для определенного класса структур данных, которые имеют сходное поведение; или для определенных типов данных одного или нескольких языков программирования, которые имеют сходную семантику. Абстрактный тип данных определяется косвенно только операциями, которые могут выполняться на нем, и математическими ограничениями на эффекты (и, возможно, стоимость) этих операций.

В несколько более конкретных терминах вы можете взять Java List в качестве примера. Интерфейс явно не определяет какого-либо поведения вообще, поскольку нет конкретного класса List. Интерфейс определяет только набор методов, которые другие классы (например, ArrayList и LinkedList), чтобы считаться List.

A коллекция - это еще один абстрактный тип данных. В случае интерфейса Java Collection он еще более абстрактный, чем List, поскольку

Интерфейс List устанавливает дополнительные условия, помимо тех, которые указаны в интерфейсе Collection, в контрактах методов iterator, add, remove, equals и hashCode.

A сумка также известна как multiset.

В математике понятие мультимножества (или мешка) является обобщением понятия множества, в котором членам разрешено появляться более одного раза. Например, существует уникальный набор, содержащий элементы a и b и другие, но есть много мультимножеств с этим свойством, например мультимножество, содержащее две копии a и один из b или мультимножество, которое содержит три копии и a, и b.

В Java сумка будет сборником, который реализует очень простой интерфейс. Вам нужно только добавить предметы в сумку, проверить ее размер и перебрать элементы, которые она содержит. См. Bag.java для примера реализации (от Sedgewick и Wayne Алгоритмы 4-го выпуска).

Ответ 3

Поистине абстрактный тип данных описывает свойства своих экземпляров без обязательства их представления или конкретных операций. Например, абстрактный (математический) тип Integer является дискретным, неограниченным, линейно упорядоченным набором экземпляров. Конкретный тип дает конкретное представление для экземпляров и реализует определенный набор операций.

Ответ 4

ADT - это набор значений данных и связанных операций, которые точно не зависят от какой-либо реализации патикулы. Сила ADT - это реализация, которая скрыта от пользователя. Объявлен только интерфейс. Это означает, что ADT - это разные способы.

Ответ 5

Абстрактный Тип данных - это математический модуль, который включает данные с различными операциями. Детали реализации скрыты и почему это называется абстрактным. Абстракция позволила вам организовать сложность задачи, сосредоточив внимание на логических свойствах данных и действий.

Ответ 6

В языках программирования тип - это некоторые данные и связанные с ним операции. ADT - это совокупность данных, определяемая пользователем, и операции над этими данными и характеризуются инкапсуляцией, данные и операции представлены или в объявленном списке в одном синтаксическом блоке и информации скрывая, для пользователя ADT, ADT интерфейса видны только соответствующие операции, аналогично нормальному типу данных на языке программирования. Это абстракция, поскольку внутреннее представление данных и реализация этих операций не имеют отношения к пользователю ADT.

Ответ 7

Обозначение абстрактного типа данных (ADT)

Абстрактный тип данных может быть определен как математическая модель с набор операций, определенных на нем. Простым примером является набор целые числа вместе с операциями объединения, определенного пересечения на множестве.

ADT - это обобщения примитивного типа данных (integer, charи т.д.), и они инкапсулируют тип данных в том смысле, что определение типа и всех операций этого типа, локализованных в одном разделе программы. Они рассматриваются как примитивный тип данных вне раздел, в котором определены ADT и его операции.

Реализация ADT - это перевод на утверждения язык программирования декларации, определяющий переменную иметь ADT, а также процедуру на этом языке для каждого это ADT. Внедрение ADT выбирает структуры данных для представления ADT.

Полезным инструментом для определения логических свойств типа данных является абстрактный тип данных. В принципе, тип данных представляет собой набор значения и набор операций над этими значениями. Эта коллекция и эти операции образуют математическую конструкцию, которая может быть реализована используя определенную структуру данных аппаратного и программного обеспечения. Срок "абстрактный тип данных" относится к базовой математической концепции, которая определяет тип данных.

При определении абстрактного типа данных как математической концепции мы не занимающихся пространственной или временной эффективностью. Это реализация вопрос. Infact, защита ADT не связана с подробности об использовании. Возможно, даже невозможно реализовать конкретный ADT на конкретном аппаратном обеспечении или используя конкретной программной системы. Например, мы уже видели, что ADT целое не реализуется универсально.

Чтобы проиллюстрировать концепцию ADT и моего метода спецификации, рассмотрите ADT RATIONAL, который соответствует математическому понятие рационального числа. Рациональное число - это число, которое может выражается как частное от двух целых чисел. Операции рациональных чисел, которые мы определяем, являются создание рационального числа из двух целых чисел, сложения, умножения и тестирования для равенства. Ниже приведена начальная спецификация этого ADT.

                  /* Value defination */

abstract typedef <integer, integer> RATIONAL;
condition RATIONAL [1]!=0;

                 /*Operator defination*/

abstract RATIONAL makerational (a,b)
int a,b;
preconditon b!=0;
postcondition makerational [0] =a;
              makerational [1] =b;
abstract RATIONAL add [a,b]
RATIONAL a,b;
postcondition add[1] = = a[1] * b[1]
              add[0] = a[0]*b[1]+b[0]*a[1]
abstract RATIONAL mult [a, b]
RATIONAL a,b;
postcondition mult[0] = = a[0]*b[a]
              mult[1] = = a[1]*b[1]
abstract equal (a,b)
RATIONAL a,b;
postcondition equal = = |a[0] * b[1] = = b[0] * a[1];

ADT состоит из двух частей: -

1) Определение значения

2) Определение операции

1) Определение значения: -

Определение значения определяет совокупность значений для ADT и состоит из двух частей:

1) Определение

2) Условие условия

Например, определение значения для ADT RATIONAL утверждает, что значение RATIONAL состоит из двух целых чисел, второе из которых не равным 0.

В абстрактном typedef ключевого слова вводятся определения значений и условие ключевого слова используется для указания каких-либо условий для нового определенный тип данных. В этом определении условие указывает, что знаменатель может не быть 0. Предложение определения требуется, но условие может не понадобиться для каждого ADT.

2) Определение оператора: -

Каждый оператор определяется как абстрактный переход с тремя частями.

1) заголовок

2) Необязательные условия

3) Необязательные постусловия

Например, операторное определение ADT RATIONAL включает операции создания (создания), добавления (добавления) и умножение (mult), а также тест на равенство (равный). Позволь нам сначала рассмотрим спецификацию умножения, так как это Простейшие. Он содержит заголовок и пост-условия, но нет предварительные условия.

abstract RATIONAL mult [a,b]
RATIONAL a,b;
postcondition mult[0] = a[0]*b[0]
              mult[1] = a[1]*b[1]

Заголовок этого определения - это первые две строки, которые просто как заголовок функции C. Атрибут ключевого слова указывает, что это не C-функция, а определение оператора ADT.

Постословие указывает, что делает операция. В пост-условие, используется имя функции (в данном случае, mult) для обозначения результата операции. Таким образом, mult [0] представляет числитель результата и mult 1 представляет знаменатель результат. То есть он указывает, какие условия становятся истинными после выполняется операция. В этом примере пост-условие указывает что сумматор результата рационального умножения равен целочисленное произведение числителей двух входов и знаменатель равен единичному произведению двух знаменателей.

List

В информатике список или последовательность - это абстрактный тип данных, который представляет собой счетное число упорядоченных значений, где одно и то же значение может произойти более одного раза. Экземпляр списка - это компьютер представление математического понятия конечной последовательности; (потенциально) бесконечный аналог списка - это поток. Списки являются основными пример контейнеров, поскольку они содержат другие значения. Если одно и то же значение происходит несколько раз, каждое вхождение считается отдельным элементом

Список имен также используется для нескольких конкретных структур данных, которые может использоваться для реализации абстрактных списков, особенно связанных списков.

введите описание изображения здесь

Изображение списка

сумка

Сумка представляет собой набор объектов, в которых вы можете добавлять объекты в мешок, но вы не можете удалить их после добавления в сумку. Таким образом, с суммарную структуру данных, вы можете собрать все объекты, а затем повторить через них. Если вы программируете на Java, вы будете мешками.

Сумка

Изображение сумки

Collection

Коллекция в смысле Java относится к любому классу, который реализует Интерфейс коллекции. Коллекция в общем смысле - это просто группа объектов.

введите описание изображения здесь

Изображение коллекций

Ответ 8

Прежде чем определять абстрактные типы данных, рассмотрим различные вид системных типов данных. Мы все знаем, что по умолчанию все примитивные типы данных (int, float и т.д.) поддерживают основные операции, такие как как сложение и вычитание. Система обеспечивает реализацию для примитивных типов данных. Для пользовательских типов данных мы также необходимо определить операции. Реализация этих операций может когда мы хотим их использовать. Это означает, в общем, определенные пользователем типы данных определяются вместе с их операциями.

Чтобы упростить процесс решения проблем, мы объединяем данные структур с их операциями, и мы называем это "Абстрактными данными Введите" . (ADT).

Обычно используемые ADT'S включают: Связанный список, Стеки, Очереди, Двоичное дерево, Словари, несвязанные наборы (союз и поиск), таблицы хэша и многие другие.

ADT состоит из двух типов:

1. Декларация данных.

2. Декларация о работе.

Ответ 9

Просто абстрактный тип данных - это не что иное, как набор операций, и набор данных используется для эффективного хранения некоторых других данных в машине. Нет необходимости в каких-либо декларировании типа сустава. Это просто требует реализации ADT.

Ответ 10

Для решения задач мы объединяем структуру данных с их операциями. ADT состоит из двух частей:

  • Декларация данных.
  • Объявление операции.

Обычно используемые ADT - это связанные списки, стеки, очереди, очереди приоритетов, деревья и т.д. При определении ADT нам не нужно беспокоиться о деталях выполнения. Они вступают в картину только тогда, когда мы хотим их использовать.

Ответ 11

Абстрактный тип данных подобен пользовательскому типу данных, на котором мы можем выполнять функции, не зная, что там внутри типа данных и как выполняются операции над ними. Поскольку информация не подвергается его абстрагированию. например. List, Array, Stack, Queue. В Stack мы можем выполнять такие функции, как Push, Pop, но мы не знаем, как это реализовано за шторами.

Ответ 12

ADT - это набор объектов и операций, нет, где в определениях ADT есть упоминание о том, как выполняется набор операций. Программисты, которые используют коллекции, должны знать, как создавать и обрабатывать данные определенным образом, без каких-либо проблем для деталей реализации коллекций. Другими словами, с точки зрения пользователей коллекция представляет собой абстракцию, и по этой причине в информатике некоторые коллекции называются абстрактными типами данных (ADT). Пользователь заботится только об обучении его интерфейсу или о множестве операций, которые он выполняет... подробнее

Ответ 13

Абстрактный тип данных - это набор значений и любые операции над этими значениями. Например, поскольку String не является примитивным типом данных, мы можем включить его в абстрактные типы данных.

Ответ 14

одним словом: абстрактный тип данных - это набор данных и операций, которые работают с этими данными. Эти операции описывают данные для остальной части программы и позволяют остальной части программы изменять данные. Слово "данные" в "абстрактном типе данных" используется свободно. ADT может быть графическим окном со всеми операциями, которые на него влияют, файлом и файловыми операциями, таблицей страховых тарифов и операциями над ним или чем-то еще.

из кода завершено 2 книга

Ответ 15

ADT - это тип данных, в котором сбор данных и работа над этими данными. Он фокусируется больше на концепции, чем на реализации. Вам решать, какой язык вы используете, чтобы сделать его видимым на земле. Пример: стек является ADT, а массив не является стеком, потому что мы можем реализовать его многими языками, Python c c++ Java и многое другое, в то время как массив построен в типе данных

Ответ 16

Термин тип данных - это тип данных, который может содержать конкретная переменная - это может быть целое число, символ, число с плавающей запятой или любой диапазон представления простого хранилища данных. Однако когда мы создаем объектно-ориентированную систему, мы используем другие типы данных, известные как абстрактный тип данных, которые представляют более реалистичные объекты.

Например: нам может быть интересно представить тип данных "банковский счет", который описывает, как все банковские счета обрабатываются в программе. Абстракция - это уменьшение сложности, игнорирование ненужных деталей.