logo

Abstrakt datatype i datastruktur

Før vi kender til den abstrakte datatype, bør vi vide om, hvad der er en datastruktur.

Hvad er datastruktur?

En datastruktur er en teknik til at organisere dataene, så dataene kan udnyttes effektivt. Der er to måder at se datastrukturen på:

    Matematiske/logiske/abstrakte modeller/visninger:Datastrukturen er den måde at organisere data på, som kræver nogle protokoller eller regler. Disse regler skal modelleres, der falder ind under den logiske/abstrakte model.Implementering:Den anden del er implementeringsdelen. Reglerne skal implementeres ved hjælp af et eller andet programmeringssprog.

Hvorfor datastruktur?

Følgende er fordelene ved at bruge datastrukturen:

  • Disse er de væsentlige ingredienser, der bruges til at skabe hurtige og kraftfulde algoritmer.
  • De hjælper os med at administrere og organisere dataene.
  • Datastrukturer gør koden renere og lettere at forstå.

Hvad er abstrakt datatype?

En abstrakt datatype er en abstraktion af en datastruktur, der kun giver den grænseflade, som datastrukturen skal overholde. Interfacet giver ingen specifikke detaljer om noget der skal implementeres eller i hvilket programmeringssprog.

Med andre ord kan vi sige, at abstrakte datatyper er de enheder, der er definitioner af data og operationer, men som ikke har implementeringsdetaljer. I dette tilfælde kender vi de data, vi gemmer, og de operationer, der kan udføres på dataene, men vi kender ikke implementeringsdetaljerne. Grunden til ikke at have implementeringsdetaljer er, at hvert programmeringssprog har en anden implementeringsstrategi for eksempel; en C-datastruktur er implementeret ved hjælp af strukturer, mens en C++-datastruktur er implementeret ved hjælp af objekter og klasser.

For eksempel, en liste er en abstrakt datatype, der implementeres ved hjælp af et dynamisk array og sammenkædet liste. En kø implementeres ved hjælp af linket listebaseret kø, matrixbaseret kø og stakbaseret kø. Et kort implementeres ved hjælp af trækort, hash-kort eller hash-tabel.

Abstrakt datatypemodel

Før vi kender til den abstrakte datatypemodel, bør vi vide om abstraktion og indkapsling.

tutorial i java programmeringssprog

Abstraktion: Det er en teknik til at skjule de interne detaljer for brugeren og kun vise de nødvendige detaljer til brugeren.

Indkapsling: Det er en teknik til at kombinere dataene og medlemsfunktionen i en enkelt enhed er kendt som indkapsling.

Abstrakt datatype i datastruktur

Ovenstående figur viser ADT-modellen. Der er to typer modeller i ADT-modellen, det vil sige den offentlige funktion og den private funktion. ADT-modellen indeholder også de datastrukturer, som vi bruger i et program. I denne model udføres den første indkapsling, dvs. alle data er pakket ind i en enkelt enhed, dvs. ADT. Så, abstraktionen udføres betyder at vise de operationer, der kan udføres på datastrukturen, og hvad er de datastrukturer, som vi bruger i et program.

Lad os forstå den abstrakte datatype med et eksempel fra den virkelige verden.

Hvis vi betragter smartphonen. Vi ser på smartphonens høje specifikationer, såsom:

  • 4 GB RAM
  • Snapdragon 2.2ghz processor
  • 5 tommer LCD-skærm
  • Dobbelt kamera
  • Android 8.0

Ovenstående specifikationer for smartphonen er dataene, og vi kan også udføre følgende handlinger på smartphonen:

    opkald():Vi kan ringe gennem smartphonen.tekst():Vi kan skrive en besked.Foto():Vi kan klikke på et foto.video():Vi kan også lave en video.

Smartphonen er en enhed, hvis data eller specifikationer og operationer er angivet ovenfor. Den abstrakte/logiske visning og operationer er de abstrakte eller logiske visninger af en smartphone.

Implementeringsvisningen af ​​ovenstående abstrakte/logiske visning er givet nedenfor:

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

Ovenstående kode er implementeringen af ​​de specifikationer og operationer, der kan udføres på smartphonen. Implementeringsvisningen kan variere, fordi syntaksen af ​​programmeringssprog er anderledes, men den abstrakte/logiske visning af datastrukturen ville forblive den samme. Derfor kan vi sige, at det abstrakte/logiske syn er uafhængigt af implementeringssynet.

Bemærk: Vi kender de operationer, der kan udføres på de foruddefinerede datatyper såsom int, float, char osv., men vi kender ikke implementeringsdetaljerne for datatyperne. Derfor kan vi sige, at den abstrakte datatype betragtes som den skjulte boks, der skjuler alle datatypens interne detaljer.

Eksempel på datastruktur

Antag, at vi har en indeksarray på størrelse 4. Vi har en indeksplacering, der starter fra 0, 1, 2, 3. Array er en datastruktur, hvor elementerne er gemt på en sammenhængende placering. Hukommelsesadressen for det første element er 1000, andet element er 1004, tredje element er 1008, og det fjerde element er 1012. Da det er af heltalstype, vil det optage 4 bytes, og forskellen mellem adresserne for hvert element er 4 bytes. Værdierne gemt i et array er 10, 20, 30 og 40. Disse værdier, indekspositioner og hukommelsesadresserne er implementeringerne.

Den abstrakte eller logiske visning af heltalsarrayet kan angives som:

typer af binære træer
  • Den gemmer et sæt elementer af heltalstypen.
  • Den læser elementerne efter position, dvs. indeks.
  • Det ændrer elementerne efter indeks
  • Den udfører sortering

Implementeringsvisningen af ​​heltalsarrayet:

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