logo

Apstraktni tip podataka u strukturi podataka

Prije nego što saznamo o apstraktnom tipu podataka, trebali bismo znati što je struktura podataka.

Što je struktura podataka?

Struktura podataka je tehnika organiziranja podataka tako da se podaci mogu učinkovito koristiti. Postoje dva načina za pregled strukture podataka:

    Matematički/ Logički/ Apstraktni modeli/ Pogledi:Struktura podataka je način organiziranja podataka koji zahtijeva neke protokole ili pravila. Ova pravila treba modelirati koja potpadaju pod logički/apstraktni model.Implementacija:Drugi dio je implementacijski dio. Pravila se moraju implementirati pomoću nekog programskog jezika.

Zašto struktura podataka?

Sljedeće su prednosti korištenja strukture podataka:

  • To su osnovni sastojci koji se koriste za stvaranje brzih i snažnih algoritama.
  • Oni nam pomažu upravljati i organizirati podatke.
  • Strukture podataka čine kod čišćim i lakšim za razumijevanje.

Što je apstraktni tip podataka?

Apstraktni tip podataka je apstrakcija strukture podataka koja pruža samo sučelje kojem se struktura podataka mora pridržavati. Sučelje ne daje nikakve specifične pojedinosti o tome što bi se nešto trebalo implementirati ili na kojem programskom jeziku.

Drugim riječima, možemo reći da su apstraktni tipovi podataka entiteti koji su definicije podataka i operacija, ali nemaju detalje implementacije. U ovom slučaju znamo podatke koje pohranjujemo i operacije koje se mogu izvesti na podacima, ali ne znamo detalje o implementaciji. Razlog zašto nema detalja o implementaciji je taj što svaki programski jezik ima drugačiju strategiju implementacije, na primjer; C struktura podataka implementirana je korištenjem struktura dok je C++ struktura podataka implementirana korištenjem objekata i klasa.

Na primjer, Popis je apstraktni tip podataka koji se implementira pomoću dinamičkog polja i povezanog popisa. Red čekanja implementiran je korištenjem povezanog reda čekanja temeljenog na listi, reda čekanja temeljenog na nizu i reda čekanja temeljenog na stogu. Karta se implementira pomoću mape stabla, hash mape ili hash tablice.

Model apstraktnog tipa podataka

Prije nego što saznamo o modelu apstraktnog tipa podataka, trebali bismo znati o apstrakciji i enkapsulaciji.

stolovi u lateksu

Apstrakcija: To je tehnika skrivanja unutarnjih detalja od korisnika i prikazivanje samo potrebnih detalja korisniku.

Enkapsulacija: To je tehnika kombiniranja podataka i funkcije člana u jednoj jedinici poznata kao enkapsulacija.

Apstraktni tip podataka u strukturi podataka

Gornja slika prikazuje ADT model. Postoje dvije vrste modela u ADT modelu, tj. javna funkcija i privatna funkcija. ADT model također sadrži strukture podataka koje koristimo u programu. U ovom modelu se prvo izvodi enkapsulacija, tj. svi podaci su omotani u jednu jedinicu, tj. ADT. Zatim se vrši apstrakcija koja znači pokazivanje operacija koje se mogu izvesti na strukturi podataka i koje su strukture podataka koje koristimo u programu.

Razumimo apstraktni tip podataka na primjeru iz stvarnog svijeta.

Ako uzmemo u obzir pametni telefon. Gledamo visoke specifikacije pametnog telefona, kao što su:

  • 4 GB RAM-a
  • Snapdragon 2.2ghz procesor
  • LCD zaslon od 5 inča
  • Dvostruka kamera
  • Android 8.0

Gore navedene specifikacije pametnog telefona su podaci, a na pametnom telefonu možemo izvršiti i sljedeće radnje:

    poziv():Možemo zvati putem pametnog telefona.tekst():Možemo poslati poruku.fotografija():Možemo kliknuti na fotografiju.video():Možemo napraviti i video.

Pametni telefon je entitet čiji su podaci ili specifikacije i operacije navedeni gore. Apstraktni/logički prikaz i operacije su apstraktni ili logični prikazi pametnog telefona.

Prikaz implementacije gornjeg apstraktnog/logičkog pogleda dan je u nastavku:

 class Smartphone { private: int ramSize; string processorName; float screenSize; int cameraCount; string androidVersion; public: void call(); void text(); void photo(); void video(); } 

Gornji kod je implementacija specifikacija i operacija koje se mogu izvesti na pametnom telefonu. Pogled na implementaciju može se razlikovati jer je sintaksa programskih jezika drugačija, ali apstraktni/logički pogled na strukturu podataka ostaje isti. Stoga možemo reći da je apstraktno/logički pogled neovisan o prikazu implementacije.

mockito kad god

Napomena: Znamo operacije koje se mogu izvesti na unaprijed definiranim tipovima podataka kao što su int, float, char itd., ali ne znamo pojedinosti implementacije tipova podataka. Stoga možemo reći da se apstraktni tip podataka smatra skrivenom kutijom koja skriva sve unutarnje detalje tipa podataka.

Primjer strukture podataka

Pretpostavimo da imamo indeksni niz veličine 4. Imamo indeksni položaj koji počinje od 0, 1, 2, 3. Niz je podatkovna struktura u kojoj su elementi pohranjeni na neprekidnoj lokaciji. Memorijska adresa prvog elementa je 1000, drugog elementa je 1004, trećeg elementa je 1008, a četvrtog elementa je 1012. Budući da je cjelobrojnog tipa, zauzimat će 4 bajta i razlika između adresa svakog elementa je 4 bajtova. Vrijednosti pohranjene u nizu su 10, 20, 30 i 40. Ove vrijednosti, pozicije indeksa i memorijske adrese su implementacije.

Apstraktni ili logički prikaz niza cijelih brojeva može se izraziti kao:

  • Pohranjuje skup elemenata cjelobrojnog tipa.
  • Čita elemente po poziciji, tj. indeksu.
  • Modificira elemente prema indeksu
  • Obavlja sortiranje

Prikaz implementacije niza cijelih brojeva:

 a[4] = {10, 20, 30, 40} cout<< a[2] a[3] = 50