logo

Abstrakt datatype i datastruktur

Før vi vet om den abstrakte datatypen, bør vi vite om hva som er en datastruktur.

Hva er datastruktur?

En datastruktur er en teknikk for å organisere dataene slik at dataene kan utnyttes effektivt. Det er to måter å se datastrukturen på:

    Matematiske/ Logiske/ Abstrakte modeller/ Visninger:Datastrukturen er måten å organisere dataene på som krever noen protokoller eller regler. Disse reglene må modelleres som kommer under den logiske/abstrakte modellen.Gjennomføring:Den andre delen er implementeringsdelen. Reglene må implementeres med et eller annet programmeringsspråk.

Hvorfor datastruktur?

Følgende er fordelene ved å bruke datastrukturen:

  • Dette er de essensielle ingrediensene som brukes for å lage raske og kraftige algoritmer.
  • De hjelper oss med å administrere og organisere dataene.
  • Datastrukturer gjør koden renere og enklere å forstå.

Hva er abstrakt datatype?

En abstrakt datatype er en abstraksjon av en datastruktur som bare gir grensesnittet som datastrukturen må følge. Grensesnittet gir ingen spesifikke detaljer om noe som skal implementeres eller i hvilket programmeringsspråk.

Med andre ord kan vi si at abstrakte datatyper er enhetene som er definisjoner av data og operasjoner, men som ikke har implementeringsdetaljer. I dette tilfellet vet vi dataene vi lagrer og operasjonene som kan utføres på dataene, men vi vet ikke om implementeringsdetaljene. Grunnen til ikke å ha implementeringsdetaljer er at hvert programmeringsspråk har en annen implementeringsstrategi for eksempel; en C-datastruktur er implementert ved hjelp av strukturer mens en C++-datastruktur er implementert ved bruk av objekter og klasser.

For eksempel, en liste er en abstrakt datatype som er implementert ved hjelp av en dynamisk matrise og koblet liste. En kø implementeres ved å bruke koblet listebasert kø, matrisebasert kø og stabelbasert kø. Et kart implementeres ved hjelp av trekart, hash-kart eller hash-tabell.

Abstrakt datatypemodell

Før vi vet om den abstrakte datatypemodellen, bør vi vite om abstraksjon og innkapsling.

Java programmeringsspråk opplæring

Abstraksjon: Det er en teknikk for å skjule de interne detaljene for brukeren og kun vise de nødvendige detaljene til brukeren.

Innkapsling: Det er en teknikk for å kombinere dataene og medlemsfunksjonen i en enkelt enhet er kjent som innkapsling.

Abstrakt datatype i datastruktur

Figuren ovenfor viser ADT-modellen. Det er to typer modeller i ADT-modellen, det vil si den offentlige funksjonen og den private funksjonen. ADT-modellen inneholder også datastrukturene som vi bruker i et program. I denne modellen utføres den første innkapslingen, det vil si at alle dataene er pakket inn i en enkelt enhet, dvs. ADT. Deretter vil abstraksjonen som utføres, vise operasjonene som kan utføres på datastrukturen og hva er datastrukturene vi bruker i et program.

La oss forstå den abstrakte datatypen med et eksempel fra den virkelige verden.

Hvis vi vurderer smarttelefonen. Vi ser på de høye spesifikasjonene til smarttelefonen, for eksempel:

  • 4 GB RAM
  • Snapdragon 2,2 GHz prosessor
  • 5 tommers LCD-skjerm
  • Dobbelt kamera
  • Android 8.0

De ovennevnte spesifikasjonene til smarttelefonen er dataene, og vi kan også utføre følgende operasjoner på smarttelefonen:

    anrop():Vi kan ringe gjennom smarttelefonen.tekst():Vi kan sende en melding.bilde():Vi kan klikke på et bilde.video():Vi kan også lage en video.

Smarttelefonen er en enhet hvis data eller spesifikasjoner og operasjoner er gitt ovenfor. Det abstrakte/logiske synet og operasjonene er de abstrakte eller logiske synene til en smarttelefon.

Implementeringssynet til det ovennevnte abstrakte/logiske synet er gitt nedenfor:

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

Koden ovenfor er implementeringen av spesifikasjonene og operasjonene som kan utføres på smarttelefonen. Implementeringsvisningen kan variere fordi syntaksen til programmeringsspråk er forskjellig, men den abstrakte/logiske visningen av datastrukturen vil forbli den samme. Derfor kan vi si at det abstrakte/logiske synet er uavhengig av implementeringssynet.

Merk: Vi kjenner operasjonene som kan utføres på forhåndsdefinerte datatyper som int, float, char, etc., men vi kjenner ikke implementeringsdetaljene til datatypene. Derfor kan vi si at den abstrakte datatypen betraktes som den skjulte boksen som skjuler alle de interne detaljene til datatypen.

Eksempel på datastruktur

Anta at vi har en indeksmatrise av størrelse 4. Vi har en indeksplassering som starter fra 0, 1, 2, 3. Matrise er en datastruktur der elementene er lagret på en sammenhengende plassering. Minneadressen til det første elementet er 1000, det andre elementet er 1004, det tredje elementet er 1008, og det fjerde elementet er 1012. Siden det er av heltallstype, vil det oppta 4 byte og forskjellen mellom adressene til hvert element er 4 bytes. Verdiene som er lagret i en matrise er 10, 20, 30 og 40. Disse verdiene, indeksposisjonene og minneadressene er implementeringene.

Det abstrakte eller logiske synet av heltallsmatrisen kan angis som:

javatable
  • Den lagrer et sett med elementer av heltallstype.
  • Den leser elementene etter posisjon, dvs. indeks.
  • Den modifiserer elementene etter indeks
  • Den utfører sortering

Implementeringsvisningen av heltallsmatrisen:

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