logo

Abstraktni podatkovni tipi

An Abstraktni podatkovni tip (ADT) je konceptualni model, ki definira nabor operacij in vedenj za podatkovno strukturo brez navedbe, kako se te operacije izvajajo ali kako so podatki organizirani v pomnilniku. Definicija ADT omenja le kaj operacije je treba izvesti ampak ne kako te operacije bodo izvedene. Ne določa, kako bodo podatki organizirani v pomnilniku in kateri algoritmi bodo uporabljeni za izvajanje operacij. Imenuje se 'abstrakten', ker zagotavlja pogled, neodvisen od izvedbe.

Postopek zagotavljanja le bistvenega in skrivanja podrobnosti je znan kot abstrakcija.

Značilnosti ADT



Abstraktni podatkovni tipi (ADT) so način enkapsulacije podatkov in operacij na teh podatkih v eno samo enoto. Nekatere ključne značilnosti ADT vključujejo:

  • Abstrakcija: Uporabniku ni treba poznati izvedbe podatkovne strukture, na voljo so le bistvene stvari.
  • Boljša konceptualizacija: ADT nam omogoča boljšo konceptualizacijo resničnega sveta.
  • Robusten: Program je robusten in ima sposobnost lovljenja napak.
  • Enkapsulacija : ADT-ji skrijejo notranje podrobnosti podatkov in uporabnikom zagotovijo javni vmesnik za interakcijo s podatki. To omogoča lažje vzdrževanje in spreminjanje podatkovne strukture.
  • Abstrakcija podatkov : ADT zagotavljajo raven abstrakcije od izvedbenih podrobnosti podatkov. Uporabniki morajo vedeti samo operacije, ki jih je mogoče izvesti s podatki, ne pa tudi, kako se te operacije izvajajo.
  • Neodvisnost strukture podatkov : ADT je ​​mogoče implementirati z uporabo različnih podatkovnih struktur, kot so polja ali povezani seznami, ne da bi to vplivalo na funkcionalnost ADT.
  • Skrivanje informacij: ADT lahko zaščitijo celovitost podatkov tako, da dovolijo dostop samo pooblaščenim uporabnikom in operacijam. To pomaga preprečiti napake in zlorabo podatkov.
  • Modularnost : ADT-je je mogoče kombinirati z drugimi ADT-ji, da tvorijo večje in kompleksnejše podatkovne strukture. To omogoča večjo fleksibilnost in modularnost pri programiranju.

Na splošno ADT-ji zagotavljajo zmogljivo orodje za organiziranje in upravljanje podatkov na strukturiran in učinkovit način.

Ta slika prikazuje, kako abstraktni podatkovni tip (ADT) skriva notranje podatkovne strukture (kot so matrični povezani seznami) z uporabo javnih in zasebnih funkcij, ki aplikacijskemu programu razkrijejo samo definiran vmesnik.

Abstraktni podatkovni tipi

Zakaj uporabljati ADT?

Spodaj so navedeni ključni razlogi za uporabo ADT-jev v Javi:

  • Enkapsulacija: Skrije zapletene podrobnosti izvedbe za čistim vmesnikom.
  • Ponovno uporabnost : Omogoča različne notranje izvedbe (npr. niz ali povezan seznam) brez spreminjanja zunanje uporabe.
  • Modularnost: Poenostavi vzdrževanje in posodobitve z ločevanjem logike.
  • Varnost: Ščiti podatke s preprečevanjem neposrednega dostopa, kar zmanjšuje napake in nenamerne spremembe.

Primer abstrakcije

Na primer, uporabljamo primitivne vrednosti, kot sta int float in char, pri čemer razumemo, da lahko ti tipi podatkov delujejo in se na njih izvajajo, ne da bi poznali podrobnosti njihove izvedbe. ADT delujejo podobno z definiranjem katere operacije so možne brez podrobnosti o njihovi izvedbi.

Razlika med ADT in UDT

Spodnja tabela prikazuje razliko med ADT in UDT.

tipkopis zanke foreach

Vidik

Abstraktni podatkovni tipi (ADT)

Uporabniško določeni podatkovni tipi (UDT)

Opredelitev

Definira razred objektov in operacije, ki jih je mogoče izvesti na njih, skupaj z njihovim pričakovanim vedenjem (semantiko), vendar brez podajanja podrobnosti izvedbe.

Podatkovni tip po meri, ustvarjen s kombiniranjem ali razširitvijo obstoječih primitivnih tipov, ki določajo strukturo in operacije.

Fokus

Katere operacije so dovoljene in kako se obnašajo, ne da bi narekovali, kako se izvajajo.

Kako so podatki organizirani v pomnilniku in kako se izvajajo operacije.

Namen

Zagotavlja abstraktni model za definiranje podatkovnih struktur na konceptualni način.

Programerjem omogoča ustvarjanje konkretnih implementacij podatkovnih struktur z uporabo primitivnih tipov.

Podrobnosti izvedbe

prenesite videoposnetke youtube na vlc

Ne določa, kako se izvajajo operacije ali kako so strukturirani podatki.

Podaja, kako ustvariti in organizirati tipe podatkov za implementacijo strukture.

Uporaba

Uporablja se za načrtovanje in konceptualizacijo podatkovnih struktur.

Uporablja se za implementacijo podatkovnih struktur, ki realizirajo abstraktne koncepte, ki jih definirajo ADT.

Primer

Seznam ADT Stack ADT Queue ADT.

np oblazinjenje

Strukture razredi naštevanja zapisov.

Primeri ADT

Zdaj pa si oglejmo tri običajne ADT: seznam ADT Stack ADT in Queue ADT.

1. Seznam ADT

List ADT (Abstract Data Type) je zaporedna zbirka elementov, ki podpira nabor operacij brez navedbe interne izvedbe . Zagotavlja urejen način za shranjevanje dostopa in spreminjanje podatkov.

Abstraktni podatkovni tipiVies seznama

Operacije:

List ADT mora shraniti zahtevane podatke v zaporedju in mora imeti naslednje operacije :

  • pridobi(): Vrne element s seznama na poljubno mesto.
  • vstavi(): Vstavite element na poljubno mesto na seznamu.
  • odstrani(): Odstranite prvo pojavitev katerega koli elementa s seznama, ki ni prazen.
  • odstraniNa(): Odstranite element na določenem mestu s seznama, ki ni prazen.
  • zamenjaj(): Zamenjajte element na poljubnem mestu z drugim elementom.
  • velikost(): Vrne število elementov na seznamu.
  • isEmpty(): Vrni true, če je seznam prazen; sicer vrne false.
  • isFull(): Vrni true, če je seznam poln, drugače vrni false. Uporablja se samo v izvedbah s fiksno velikostjo (npr. seznami na podlagi polja).

2. Zložite ADT

Stack ADT je ​​linearna podatkovna struktura, ki sledi načelu LIFO (Last In First Out). Omogoča dodajanje in odstranjevanje elementov samo z enega konca, imenovanega vrh sklada.

Abstraktni podatkovni tipiPogled na sklad

Operacije:

V Stack ADT mora biti vrstni red vstavljanja in brisanja v skladu z načelom FILO ali LIFO. Elementi se vstavljajo in odstranjujejo z istega konca, imenovanega vrh sklada. Podpirati mora tudi naslednje operacije:

  • potisni(): Vstavite element na en konec niza, imenovan vrh.
  • pop(): Odstranite in vrnite element na vrhu sklada, če ni prazen.
  • pokukati(): Vrnite element na vrhu sklada, ne da bi ga odstranili, če sklad ni prazen.
  • velikost(): Vrne število elementov v skladu.
  • isEmpty(): Vrni true, če je sklad prazen; sicer vrne false.
  • isFull(): Vrni true, če je sklad poln; sicer vrne false. Ustrezno samo za sklade s fiksno kapaciteto (npr. na podlagi polja).

3. Čakalna vrsta ADT

Queue ADT je ​​linearna podatkovna struktura, ki sledi načelu FIFO (First In First Out). Omogoča vstavljanje elementov na enem koncu (zadaj) in odstranjevanje z drugega konca (spredaj).

Abstraktni podatkovni tipiPogled na čakalno vrsto

Operacije:

Queue ADT je ​​zasnovan podobno kot Stack ADT, vendar se vrstni red vstavljanja in brisanja spremeni v FIFO. Elementi so vstavljeni na enem koncu (imenovanem zadnji) in odstranjeni na drugem koncu (imenovanem sprednji). Podpirati mora naslednje operacije:

kako pretvoriti niz v celo število v Javi
  • v čakalno vrsto(): Vstavite element na konec čakalne vrste.
  • ustrezno(): Odstranite in vrnite prvi element čakalne vrste, če čakalna vrsta ni prazna.
  • pokukati(): Vrni element čakalne vrste, ne da bi ga odstranil, če čakalna vrsta ni prazna.
  • velikost(): Vrne število elementov v čakalni vrsti.
  • isEmpty(): Vrni true, če je čakalna vrsta prazna; sicer vrne false.

Prednosti in slabosti ADT

Abstraktni podatkovni tipi (ADT) imajo številne prednosti in slabosti, ki jih je treba upoštevati, ko se odločamo za njihovo uporabo pri razvoju programske opreme. Tukaj je nekaj glavnih prednosti in slabosti uporabe ADT:

Prednost:

Prednosti so navedene spodaj:

  • Enkapsulacija : ADT zagotavljajo način za inkapsulacijo podatkov in operacij v eno samo enoto, kar olajša upravljanje in spreminjanje strukture podatkov.
  • Abstrakcija : ADT uporabnikom omogočajo delo s podatkovnimi strukturami, ne da bi morali poznati podrobnosti izvedbe, kar lahko poenostavi programiranje in zmanjša napake.
  • Neodvisnost strukture podatkov : ADT je ​​mogoče implementirati z uporabo različnih podatkovnih struktur, kar lahko olajša prilagajanje spreminjajočim se potrebam in zahtevam.
  • Skrivanje informacij : ADT lahko zaščitijo celovitost podatkov z nadzorom dostopa in preprečevanjem nepooblaščenih sprememb.
  • Modularnost : ADT-je je mogoče kombinirati z drugimi ADT-ji za oblikovanje bolj zapletenih podatkovnih struktur, ki lahko povečajo prilagodljivost in modularnost pri programiranju.

Slabosti:

Slabosti so navedene spodaj:

  • Nad glavo : Izvajanje ADT-jev lahko poveča stroške v smislu pomnilnika in obdelave, kar lahko vpliva na zmogljivost.
  • Kompleksnost : ADT-ji so lahko zapleteni za implementacijo, zlasti za velike in kompleksne podatkovne strukture.
  • Učenje Krivulja: uporaba ADT-jev zahteva znanje o njihovi implementaciji in uporabi, kar lahko zahteva čas in trud za učenje.
  • Omejena prilagodljivost: Nekateri ADT-ji so lahko omejeni v svoji funkcionalnosti ali morda niso primerni za vse vrste podatkovnih struktur.
  • Stroški : Izvajanje ADT-jev lahko zahteva dodatne vire in naložbe, kar lahko poveča stroške razvoja.
Ustvari kviz