logo

Апстрактни типови података

Ан Апстрактни тип података (АДТ) је концептуални модел који дефинише скуп операција и понашања за структуру података без прецизирања како се те операције спроводе или како су подаци организовани у меморији. Дефиниција АДТ-а само помиње шта треба извршити операције али не како ове операције ће бити спроведене. Не прецизира како ће подаци бити организовани у меморији и који ће се алгоритми користити за имплементацију операција. Назива се 'апстрактним' јер пружа поглед независан од имплементације.

Процес пружања само основних ствари и скривања детаља је познат као апстракција.

Карактеристике АДТ-а



Апстрактни типови података (АДТ) су начин капсулирања података и операција над тим подацима у једну јединицу. Неке од кључних карактеристика АДТ-а укључују:

  • апстракција: Корисник не мора да зна имплементацију структуре података само су основне ствари обезбеђене.
  • Боља концептуализација: АДТ нам даје бољу концептуализацију стварног света.
  • робустан: Програм је робустан и има могућност да ухвати грешке.
  • Енкапсулација : АДТ-ови сакривају интерне детаље података и пружају јавни интерфејс за кориснике за интеракцију са подацима. Ово омогућава лакше одржавање и модификацију структуре података.
  • Апстракција података : АДТ-ови обезбеђују ниво апстракције од детаља имплементације података. Корисници треба да знају само операције које се могу извршити над подацима, а не како се те операције имплементирају.
  • Независност структуре података : АДТ-ови се могу имплементирати коришћењем различитих структура података као што су низови или повезане листе без утицаја на функционалност АДТ-а.
  • Скривање информација: АДТ могу заштитити интегритет података дозвољавајући приступ само овлашћеним корисницима и операцијама. Ово помаже у спречавању грешака и злоупотребе података.
  • Модуларност : АДТ-ови се могу комбиновати са другим АДТ-овима да би се формирале веће сложеније структуре података. Ово омогућава већу флексибилност и модуларност у програмирању.

Свеукупни АДТ-ови пружају моћан алат за организовање и манипулацију подацима на структуриран и ефикасан начин.

Ова слика показује како апстрактни тип података (АДТ) сакрива унутрашње структуре података (попут низова повезаних листа) користећи јавне и приватне функције излажући само дефинисани интерфејс апликацијском програму.

Апстрактни типови података

Зашто користити АДТ?

Кључни разлози за коришћење АДТ-а у Јави су наведени у наставку:

  • Енкапсулација: Сакрива сложене детаље имплементације иза чистог интерфејса.
  • Поновна употреба : Дозвољава различите интерне имплементације (нпр. низ или повезана листа) без промене спољашње употребе.
  • Модуларност: Поједностављује одржавање и ажурирања раздвајањем логике.
  • безбедност: Штити податке спречавањем директног приступа минимизирајући грешке и ненамерне промене.

Пример апстракције

На пример, користимо примитивне вредности као што су инт флоат и цхар са разумевањем да ови типови података могу да раде и да се извршавају без икаквог знања о детаљима њихове имплементације. АДТ раде слично дефинисањем које су операције могуће без детаљног описа њихове имплементације.

Разлика између АДТ-а и УДТ-ова

Табела испод показује разлику између АДТ-а и УДТ-а.

1 до 100 римски бр

Аспецт

Апстрактни типови података (АДТ)

Кориснички дефинисани типови података (УДТ)

Дефиниција

Дефинише класу објеката и операције које се могу извршити над њима заједно са њиховим очекиваним понашањем (семантиком), али без специфицирања детаља имплементације.

Прилагођени тип података креиран комбиновањем или проширењем постојећих примитивних типова који специфицирају и структуру и операције.

нп.цонцатенате

Фоцус

Које су операције дозвољене и како се понашају, а да не диктирају како ће се спроводити.

Како су подаци организовани у меморији и како се извршавају операције.

Сврха

Пружа апстрактни модел за дефинисање структура података на концептуални начин.

Омогућава програмерима да креирају конкретне имплементације структура података користећи примитивне типове.

Детаљи имплементације

Не наводи како се имплементирају операције или како су подаци структурирани.

Одређује како се креирају и организују типови података за имплементацију структуре.

Употреба

Користи се за пројектовање и концептуализацију структура података.

Користи се за имплементацију структура података које реализују апстрактне концепте дефинисане АДТ-овима.

Пример

Листа АДТ Стацк АДТ Ред АДТ.

Структуре класе набрајања записа.

Примери АДТ-а

Сада хајде да разумемо три уобичајена АДТ-а: Лист АДТ Стацк АДТ и Куеуе АДТ.

1. Листа АДТ

Листа АДТ (Апстрактни тип података) је секвенцијална колекција елемената која подржава скуп операција без прецизирања унутрашње имплементације . Пружа уређен начин чувања приступа и модификације података.

Апстрактни типови податакаВиес оф лист

Операције:

ф-стринг питхон

Лист АДТ треба да складишти тражене податке у низу и треба да има следеће операције :

  • гет(): Врати елемент са листе на било којој позицији.
  • инсерт(): Уметните елемент на било коју позицију на листи.
  • уклони(): Уклоните прво појављивање било ког елемента са листе која није празна.
  • ремовеАт(): Уклоните елемент на одређеној локацији са непразне листе.
  • замени(): Замените елемент на било којој позицији другим елементом.
  • величина(): Врати број елемената на листи.
  • исЕмпти(): Врати тачно ако је листа празна; у супротном врати фалсе.
  • исФулл(): Врати тачно ако је листа пуна, иначе врати фалсе. Применљиво само у имплементацијама фиксне величине (нпр. листе засноване на низу).

2. Стацк АДТ

Стацк АДТ је линеарна структура података која прати ЛИФО (Ласт Ин Фирст Оут) принцип. Омогућава додавање и уклањање елемената само са једног краја који се назива врх стека.

Апстрактни типови податакаПоглед на стог

Операције:

У Стацк АДТ редослед уметања и брисања треба да буде у складу са ФИЛО или ЛИФО принципом. Елементи се убацују и уклањају са истог краја који се назива врх снопа. Такође би требало да подржава следеће операције:

  • пусх(): Уметните елемент на један крај снопа који се зове врх.
  • поп(): Уклоните и вратите елемент на врх стека ако није празан.
  • завирити(): Вратите елемент на врх стека без уклањања ако стек није празан.
  • величина(): Врати број елемената у стеку.
  • исЕмпти(): Врати тачно ако је стек празан; у супротном врати фалсе.
  • исФулл(): Врати тачно ако је стек пун; у супротном врати фалсе. Релевантно само за стекове фиксног капацитета (нпр. засноване на низу).

3. Ред АДТ

Куеуе АДТ је линеарна структура података која прати ФИФО (Фирст Ин Фирст Оут) принцип. Омогућава да се елементи уметну на једном крају (позади) и уклоне са другог краја (предњи).

Апстрактни типови податакаПоглед на ред

Операције:

Ред АДТ прати дизајн сличан Стацк АДТ-у, али се редослед уметања и брисања мења у ФИФО. Елементи се убацују на један крај (који се називају задњи) и уклањају са другог краја (који се назива предњи). Требало би да подржава следеће операције:

јава карактер у стринг
  • енкуеуе(): Уметните елемент на крај реда.
  • према томе(): Уклоните и вратите први елемент реда ако ред није празан.
  • завирити(): Вратите елемент реда без уклањања ако ред није празан.
  • величина(): Врати број елемената у реду.
  • исЕмпти(): Врати тачно ако је ред празан; у супротном врати фалсе.

Предности и недостаци АДТ-а

Апстрактни типови података (АДТ) имају неколико предности и недостатака које треба узети у обзир када одлучујете да их користите у развоју софтвера. Ево неких од главних предности и недостатака употребе АДТ-а:

предност:

Предности су наведене у наставку:

  • Енкапсулација : АДТ-ови обезбеђују начин за енкапсулацију података и операција у једну јединицу што олакшава управљање и модификацију структуре података.
  • Апстракција : АДТ омогућавају корисницима да раде са структурама података без потребе да знају детаље имплементације који могу поједноставити програмирање и смањити грешке.
  • Независност структуре података : АДТ се могу имплементирати коришћењем различитих структура података које могу олакшати прилагођавање променљивим потребама и захтевима.
  • Сакривање информација : АДТ-ови могу заштитити интегритет података контролом приступа и спречавањем неовлашћених модификација.
  • Модуларност : АДТ-ови се могу комбиновати са другим АДТ-овима да би се формирале сложеније структуре података које могу повећати флексибилност и модуларност у програмирању.

Недостаци:

Недостаци су наведени у наставку:

  • Оверхеад : Имплементација АДТ-а може додати додатне трошкове у смислу меморије и обраде што може утицати на перформансе.
  • Сложеност : АДТ-ови могу бити сложени за имплементацију посебно за велике и сложене структуре података.
  • Учење Крива: Коришћење АДТ-а захтева знање о њиховој примени и употреби за шта може бити потребно време и труд да се научи.
  • Ограничена флексибилност: Неки АДТ-ови могу бити ограничени у својој функционалности или можда нису погодни за све типове структура података.
  • Цост : Имплементација АДТ-а може захтевати додатне ресурсе и улагања што може повећати трошкове развоја.
Креирај квиз