logo

Abstrakt datatyp i datastruktur

Innan vi vet om den abstrakta datatypen bör vi veta om vad som är en datastruktur.

Vad är datastruktur?

En datastruktur är en teknik för att organisera data så att data kan användas effektivt. Det finns två sätt att se datastrukturen:

    Matematiska/logiska/abstrakta modeller/vyer:Datastrukturen är sättet att organisera data som kräver vissa protokoll eller regler. Dessa regler måste modelleras som faller under den logiska/abstrakta modellen.Genomförande:Den andra delen är implementeringsdelen. Reglerna måste implementeras med något programmeringsspråk.

Varför datastruktur?

Följande är fördelarna med att använda datastrukturen:

  • Dessa är de väsentliga ingredienserna som används för att skapa snabba och kraftfulla algoritmer.
  • De hjälper oss att hantera och organisera data.
  • Datastrukturer gör koden renare och lättare att förstå.

Vad är abstrakt datatyp?

En abstrakt datatyp är en abstraktion av en datastruktur som endast tillhandahåller det gränssnitt som datastrukturen måste följa. Gränssnittet ger inga specifika detaljer om något som ska implementeras eller i vilket programmeringsspråk.

Med andra ord kan vi säga att abstrakta datatyper är de enheter som är definitioner av data och operationer men som inte har implementeringsdetaljer. I det här fallet känner vi till data som vi lagrar och de operationer som kan utföras på data, men vi känner inte till implementeringsdetaljerna. Anledningen till att inte ha implementeringsdetaljer är att varje programmeringsspråk har en annan implementeringsstrategi till exempel; en C-datastruktur implementeras med hjälp av strukturer medan en C++-datastruktur implementeras med hjälp av objekt och klasser.

Till exempel, en lista är en abstrakt datatyp som implementeras med hjälp av en dynamisk array och länkad lista. En kö implementeras med hjälp av länkad listbaserad kö, arraybaserad kö och stackbaserad kö. En karta implementeras med hjälp av trädkarta, hashkarta eller hashtabell.

Abstrakt datatypmodell

Innan vi känner till den abstrakta datatypsmodellen bör vi veta om abstraktion och inkapsling.

python-konstruktör

Abstraktion: Det är en teknik för att dölja de interna detaljerna för användaren och endast visa de nödvändiga detaljerna för användaren.

Inkapsling: Det är en teknik för att kombinera data och medlemsfunktionen i en enda enhet kallas inkapsling.

Abstrakt datatyp i datastruktur

Ovanstående figur visar ADT-modellen. Det finns två typer av modeller i ADT-modellen, det vill säga den offentliga funktionen och den privata funktionen. ADT-modellen innehåller också de datastrukturer som vi använder i ett program. I denna modell utförs den första inkapslingen, dvs all data är inlindad i en enda enhet, dvs ADT. Sedan innebär abstraktionen utförd att visa de operationer som kan utföras på datastrukturen och vilka datastrukturer vi använder i ett program.

Låt oss förstå den abstrakta datatypen med ett exempel från verkligheten.

protokoll för datalänkslager

Om vi ​​tänker på smartphonen. Vi tittar på smarttelefonens höga specifikationer, såsom:

  • 4 GB RAM
  • Snapdragon 2.2ghz-processor
  • 5 tums LCD-skärm
  • Dubbel kamera
  • Android 8.0

Ovanstående specifikationer för smartphonen är data, och vi kan också utföra följande operationer på smarttelefonen:

    ring upp():Vi kan ringa via smartphonen.text():Vi kan smsa ett meddelande.Foto():Vi kan klicka på ett foto.video():Vi kan också göra en video.

Smarttelefonen är en enhet vars data eller specifikationer och funktioner anges ovan. Den abstrakta/logiska vyn och operationerna är de abstrakta eller logiska vyerna av en smartphone.

Implementeringsvyn för ovanstående abstrakta/logiska vy ges nedan:

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

Ovanstående kod är implementeringen av specifikationerna och operationerna som kan utföras på smarttelefonen. Implementeringsvyn kan skilja sig åt eftersom syntaxen för programmeringsspråk är annorlunda, men den abstrakta/logiska synen på datastrukturen skulle förbli densamma. Därför kan vi säga att den abstrakta/logiska synen är oberoende av implementeringssynen.

Obs: Vi känner till operationerna som kan utföras på de fördefinierade datatyperna som int, float, char, etc., men vi känner inte till implementeringsdetaljerna för datatyperna. Därför kan vi säga att den abstrakta datatypen betraktas som den dolda rutan som döljer alla interna detaljer för datatypen.

Exempel på datastruktur

Anta att vi har en indexarray av storlek 4. Vi har en indexplats som börjar från 0, 1, 2, 3. Array är en datastruktur där elementen lagras på en sammanhängande plats. Minnesadressen för det första elementet är 1000, det andra elementet är 1004, det tredje elementet är 1008 och det fjärde elementet är 1012. Eftersom det är av heltalstyp så kommer det att uppta 4 byte och skillnaden mellan adresserna för varje element är 4 bytes. Värdena som lagras i en array är 10, 20, 30 och 40. Dessa värden, indexpositioner och minnesadresserna är implementeringarna.

Den abstrakta eller logiska vyn av heltalsmatrisen kan anges som:

  • Den lagrar en uppsättning element av heltalstyp.
  • Den läser elementen efter position, dvs index.
  • Den modifierar elementen efter index
  • Den utför sortering

Implementeringsvyn för heltalsmatrisen:

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