Skip to main content

Абстрактный тип данных Примеры АТД | См. также | Ссылки | НавигацияЛапшин В. А. Абстрактные типы данных в программировании

БитНибблБайтКубитТритТрайтСловоСимвольныйСтроковыйАлгебраический тип данныхобобщённыйКлассТип-произведениеЗаписьКортежСтруктураОбъектОбъединениемеченоеЛогическийНизшийВысшийПолиморфныйФункциональныйПеречисляемыйКоллекцияИсключениеРодМетаклассМонадаСемафорПотокVoid


Типы данныхСтруктуры данныхТеория типов


математическая модельтипов данныхсемантикоймножествопрограммного обеспеченияабстракциифункцийструктурами данныхпрограммированииинтерфейсовинкапсуляцииобъектно-ориентированном программированиисемантикиалгоритмыструктурами данныхсписокмассивадинамического выделения памятимодульности












Абстрактный тип данных




Материал из Википедии — свободной энциклопедии






Перейти к навигации
Перейти к поиску


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


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


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


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


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



Примеры АТД |


  • Список

  • Стек

  • Очередь

  • Ассоциативный массив

  • Очередь с приоритетом


См. также |


  • Интерфейс программирования приложений

  • Объектно-ориентированное программирование


Ссылки |


  • Лапшин В. А. Абстрактные типы данных в программировании






Источник — https://ru.wikipedia.org/w/index.php?title=Абстрактный_тип_данных&oldid=87084109










Навигация



























(window.RLQ=window.RLQ||[]).push(function()mw.config.set("wgPageParseReport":"limitreport":"cputime":"0.116","walltime":"0.178","ppvisitednodes":"value":599,"limit":1000000,"ppgeneratednodes":"value":0,"limit":1500000,"postexpandincludesize":"value":35279,"limit":2097152,"templateargumentsize":"value":179,"limit":2097152,"expansiondepth":"value":15,"limit":40,"expensivefunctioncount":"value":3,"limit":500,"unstrip-depth":"value":0,"limit":20,"unstrip-size":"value":0,"limit":5000000,"entityaccesscount":"value":1,"limit":400,"timingprofile":["100.00% 143.291 1 -total"," 71.25% 102.090 1 Шаблон:Rq"," 65.53% 93.898 1 Шаблон:Ambox"," 29.09% 41.690 16 Шаблон:Rq/"," 28.68% 41.091 1 Шаблон:Типы_данных"," 25.97% 37.213 1 Шаблон:Навигационная_таблица"," 16.86% 24.158 1 Шаблон:Rq/sources"," 15.28% 21.902 1 Шаблон:Нет_источника_(сортировка_по_типу)"," 8.01% 11.483 2 Шаблон:Сортировка:_по_странам"," 6.15% 8.807 1 Шаблон:Rq/stub"],"scribunto":"limitreport-timeusage":"value":"0.033","limit":"10.000","limitreport-memusage":"value":1266572,"limit":52428800,"cachereport":"origin":"mw1326","timestamp":"20190307120813","ttl":2592000,"transientcontent":false););"@context":"https://schema.org","@type":"Article","name":"u0410u0431u0441u0442u0440u0430u043au0442u043du044bu0439 u0442u0438u043f u0434u0430u043du043du044bu0445","url":"https://ru.wikipedia.org/wiki/%D0%90%D0%B1%D1%81%D1%82%D1%80%D0%B0%D0%BA%D1%82%D0%BD%D1%8B%D0%B9_%D1%82%D0%B8%D0%BF_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85","sameAs":"http://www.wikidata.org/entity/Q827335","mainEntity":"http://www.wikidata.org/entity/Q827335","author":"@type":"Organization","name":"Contributors to Wikimedia projects","publisher":"@type":"Organization","name":"u0424u043eu043du0434 u0412u0438u043au0438u043cu0435u0434u0438u0430","logo":"@type":"ImageObject","url":"https://www.wikimedia.org/static/images/wmf-hor-googpub.png","datePublished":"2005-12-27T08:01:06Z","dateModified":"2017-08-15T14:03:31Z","headline":"u0442u0438u043f u0434u0430u043du043du044bu0445, u043au043eu0442u043eu0440u044bu0439 u043fu0440u0435u0434u043eu0441u0442u0430u0432u043bu044fu0435u0442 u0434u043bu044f u0440u0430u0431u043eu0442u044b u0441 u044du043bu0435u043cu0435u043du0442u0430u043cu0438 u044du0442u043eu0433u043e u0442u0438u043fu0430 u043eu043fu0440u0435u0434u0435u043bu0451u043du043du044bu0439 u043du0430u0431u043eu0440 u0444u0443u043du043au0446u0438u0439, u0430 u0442u0430u043au0436u0435 u0432u043eu0437u043cu043eu0436u043du043eu0441u0442u044c u0441u043eu0437u0434u0430u0432u0430u0442u044c u044du043bu0435u043cu0435u043du0442u044b u044du0442u043eu0433u043e u0442u0438u043fu0430 u043fu0440u0438 u043fu043eu043cu043eu0449u0438 u0441u043fu0435u0446u0438u0430u043bu044cu043du044bu0445 u0444u0443u043du043au0446u0438u0439"(window.RLQ=window.RLQ||[]).push(function()mw.config.set("wgBackendResponseTime":135,"wgHostname":"mw1275"););

Popular posts from this blog

Reverse int within the 32-bit signed integer range: [−2^31, 2^31 − 1]Combining two 32-bit integers into one 64-bit integerDetermine if an int is within rangeLossy packing 32 bit integer to 16 bitComputing the square root of a 64-bit integerKeeping integer addition within boundsSafe multiplication of two 64-bit signed integersLeetcode 10: Regular Expression MatchingSigned integer-to-ascii x86_64 assembler macroReverse the digits of an Integer“Add two numbers given in reverse order from a linked list”

Category:Fedor von Bock Media in category "Fedor von Bock"Navigation menuUpload mediaISNI: 0000 0000 5511 3417VIAF ID: 24712551GND ID: 119294796Library of Congress authority ID: n96068363BnF ID: 12534305fSUDOC authorities ID: 034604189Open Library ID: OL338253ANKCR AUT ID: jn19990000869National Library of Israel ID: 000514068National Thesaurus for Author Names ID: 341574317ReasonatorScholiaStatistics

Kiel Indholdsfortegnelse Historie | Transport og færgeforbindelser | Sejlsport og anden sport | Kultur | Kendte personer fra Kiel | Noter | Litteratur | Eksterne henvisninger | Navigationsmenuwww.kiel.de54°19′31″N 10°8′26″Ø / 54.32528°N 10.14056°Ø / 54.32528; 10.14056Oberbürgermeister Dr. Ulf Kämpferwww.statistik-nord.deDen danske Stats StatistikKiels hjemmesiderrrWorldCat312794080n790547494030481-4