logo

Tip de date abstracte în structura datelor

Înainte de a ști despre tipul de date abstracte, ar trebui să știm despre ce este o structură de date.

Ce este structura datelor?

O structură de date este o tehnică de organizare a datelor astfel încât datele să poată fi utilizate eficient. Există două moduri de vizualizare a structurii datelor:

    Modele matematice/ logice/ abstracte/ vederi:Structura datelor este modalitatea de organizare a datelor care necesită unele protocoale sau reguli. Aceste reguli trebuie să fie modelate conform modelului logic/abstract.Implementare:A doua parte este partea de implementare. Regulile trebuie implementate folosind un limbaj de programare.

De ce structura datelor?

Următoarele sunt avantajele utilizării structurii de date:

  • Acestea sunt ingredientele esențiale folosite pentru a crea algoritmi rapidi și puternici.
  • Ele ne ajută să gestionăm și să organizăm datele.
  • Structurile de date fac codul mai curat și mai ușor de înțeles.

Ce este tipul de date abstracte?

Un tip de date abstract este o abstractizare a unei structuri de date care oferă doar interfața la care structura de date trebuie să adere. Interfața nu oferă detalii specifice despre ceva care ar trebui implementat sau în ce limbaj de programare.

Cu alte cuvinte, putem spune că tipurile de date abstracte sunt entitățile care sunt definiții ale datelor și operațiunilor, dar care nu au detalii de implementare. În acest caz, știm datele pe care le stocăm și operațiunile care pot fi efectuate asupra datelor, dar nu știm detaliile implementării. Motivul pentru care nu există detalii de implementare este că fiecare limbaj de programare are o strategie de implementare diferită, de exemplu; o structură de date C este implementată folosind structuri, în timp ce o structură de date C++ este implementată folosind obiecte și clase.

De exemplu, o Listă este un tip de date abstract care este implementat folosind o matrice dinamică și o listă legată. O coadă este implementată utilizând o coadă legată bazată pe liste, o coadă bazată pe matrice și o coadă bazată pe stivă. O hartă este implementată folosind hartă arbore, hartă hash sau tabel hash.

Model de tip de date abstract

Înainte de a cunoaște modelul tipului de date abstracte, ar trebui să știm despre abstracție și încapsulare.

procesare paralelă

Abstracție: Este o tehnică de ascundere a detaliilor interne de către utilizator și de a afișa doar detaliile necesare utilizatorului.

Încapsulare: Este o tehnică de combinare a datelor și a funcției membru într-o singură unitate este cunoscută sub numele de încapsulare.

Tip de date abstracte în structura datelor

Figura de mai sus prezintă modelul ADT. Există două tipuri de modele în modelul ADT, și anume, funcția publică și funcția privată. Modelul ADT conține, de asemenea, structurile de date pe care le folosim într-un program. În acest model, se realizează prima încapsulare, adică toate datele sunt împachetate într-o singură unitate, adică ADT. Apoi, abstractizarea este realizată înseamnă arătând operațiile care pot fi efectuate asupra structurii de date și care sunt structurile de date pe care le folosim într-un program.

Să înțelegem tipul de date abstracte cu un exemplu din lumea reală.

Dacă luăm în considerare smartphone-ul. Ne uităm la specificațiile înalte ale smartphone-ului, cum ar fi:

dactilografiat data ora
  • 4 GB RAM
  • procesor Snapdragon 2.2ghz
  • Ecran LCD de 5 inch
  • Cameră duală
  • Android 8.0

Specificațiile de mai sus ale smartphone-ului sunt datele și putem efectua și următoarele operațiuni pe smartphone:

    apel():Putem suna prin smartphone.text():Putem trimite un mesaj text.fotografie():Putem face clic pe o fotografie.video():Putem face și un videoclip.

Smartphone-ul este o entitate ale cărei date sau specificații și operațiuni sunt date mai sus. Vizualizarea abstractă/logică și operațiunile sunt vederile abstracte sau logice ale unui smartphone.

Vederea de implementare a vederii abstracte/logice de mai sus este prezentată mai jos:

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

Codul de mai sus este implementarea specificațiilor și operațiunilor care pot fi efectuate pe smartphone. Vizualizarea implementării poate diferi deoarece sintaxa limbajelor de programare este diferită, dar imaginea abstractă/logică a structurii de date ar rămâne aceeași. Prin urmare, putem spune că vederea abstractă/logică este independentă de vederea implementării.

Notă: Cunoaștem operațiunile care pot fi efectuate pe tipurile de date predefinite, cum ar fi int, float, char etc., dar nu cunoaștem detaliile de implementare ale tipurilor de date. Prin urmare, putem spune că tipul de date abstract este considerat ca fiind caseta ascunsă care ascunde toate detaliile interne ale tipului de date.

Exemplu de structură a datelor

Să presupunem că avem o matrice index de dimensiunea 4. Avem o locație index care începe de la 0, 1, 2, 3. Matrice este o structură de date în care elementele sunt stocate într-o locație adiacentă. Adresa de memorie a primului element este 1000, al doilea element este 1004, al treilea element este 1008, iar al patrulea element este 1012. Deoarece este de tip întreg, va ocupa 4 octeți, iar diferența dintre adresele fiecărui element este de 4. octeți. Valorile stocate într-o matrice sunt 10, 20, 30 și 40. Aceste valori, poziții de index și adrese de memorie sunt implementări.

Vederea abstractă sau logică a matricei întregi poate fi enunțată astfel:

  • Stochează un set de elemente de tip întreg.
  • Citește elementele după poziție, adică index.
  • Modifică elementele prin index
  • Efectuează sortarea

Vederea de implementare a matricei întregi:

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