I den här artikeln kommer vi att lära oss om ADT men innan vi förstår vad ADT är låt oss överväga olika inbyggda datatyper som tillhandahålls oss. Datatyper som int, float, double, long, etc. anses vara inbyggda datatyper och vi kan utföra grundläggande operationer med dem som addition, subtraktion, division, multiplikation etc. Nu kan det uppstå en situation när vi behöver operationer för vår användardefinierade datatyp som måste definieras. Dessa operationer kan endast definieras när och när vi behöver dem. Så för att förenkla processen att lösa problem kan vi skapa datastrukturer tillsammans med deras verksamhet, och sådana datastrukturer som inte är inbyggda kallas Abstrakt Data Type (ADT).
javascript onload script
Abstrakt datatyp (ADT) är en typ (eller klass) för objekt vars beteende definieras av en uppsättning värden och en uppsättning operationer. Definitionen av ADT nämner bara vilka operationer som ska utföras men inte hur dessa operationer kommer att implementeras. Den specificerar inte hur data kommer att organiseras i minnet och vilka algoritmer som kommer att användas för att implementera operationerna. Det kallas abstrakt eftersom det ger en implementeringsoberoende syn.
Processen att endast tillhandahålla det väsentliga och dölja detaljerna kallas abstraktion.

Användaren av Så en användare behöver bara veta vad en datatyp kan göra, men inte hur den kommer att implementeras. Tänk på ADT som en svart låda som döljer den inre strukturen och designen av datatypen. Nu kommer vi att definiera tre ADTs nämligen Lista ADT, Kö ADT.
1. Lista ADT
1 miljard till miljon

Vies av listan
- Data lagras vanligtvis i nyckelsekvens i en lista som har en huvudstruktur bestående av räkna , pekare och adress för jämförelsefunktionen behövs för att jämföra uppgifterna i listan.
- Datanoden innehåller pekare till en datastruktur och en självrefererande pekare som pekar på nästa nod i listan.
- De Lista ADT-funktioner ges nedan:
- get() – Returnera ett element från listan vid en given position.
- insert() – Infoga ett element på valfri plats i listan.
- remove() – Ta bort den första förekomsten av ett element från en icke-tom lista.
- removeAt() – Ta bort elementet på en angiven plats från en icke-tom lista.
- replace() – Ersätt ett element på valfri position med ett annat element.
- size() – Returnera antalet element i listan.
- isEmpty() – Returnera true om listan är tom, annars returnerar false.
- isFull() – Returnera true om listan är full, annars returnerar false.
2. Stapla ADT

Vy över stack
sdlc livscykel
- I Stack ADT Implementation, istället för att data lagras i varje nod, lagras pekaren till data.
- Programmet allokerar minne för data och adress skickas till stack ADT.
- Huvudnoden och datanoderna är inkapslade i ADT. Den anropande funktionen kan bara se pekaren till stacken.
- Stackhuvudstrukturen innehåller också en pekare till topp och räkna av antalet poster som för närvarande finns i stack.
- push() – Infoga ett element i ena änden av stacken som kallas top.
- pop() – Ta bort och returnera elementet överst i stacken, om det inte är tomt.
- peek() – Returnera elementet högst upp i stacken utan att ta bort det, om stacken inte är tom.
- size() – Returnera antalet element i stacken.
- isEmpty() – Returnera true om stacken är tom, annars returnerar false.
- isFull() – Returnerar true om stacken är full, annars returnerar false.
3. Kö ADT

Utsikt över kö
- Köabstraktdatatypen (ADT) följer den grundläggande designen av stackabstraktdatatypen.
- Varje nod innehåller en void-pekare till data och den länkpekare till nästa element i kön. Programmets ansvar är att allokera minne för att lagra data.
- enqueue() – Infoga ett element i slutet av kön.
- dequeue() – Ta bort och returnera det första elementet i kön, om kön inte är tom.
- peek() – Returnera elementet i kön utan att ta bort det, om kön inte är tom.
- size() – Returnera antalet element i kön.
- isEmpty() – Returnera true om kön är tom, annars returnerar false.
- isFull() – Returnera true om kön är full, annars returnerar false.
Funktioner hos ADT:
Abstrakta datatyper (ADT) är ett sätt att kapsla in data och operationer på dessa data i en enda enhet. Några av nyckelfunktionerna i ADT inkluderar:
- Abstraktion: Användaren behöver inte känna till implementeringen av datastrukturen, bara väsentligheter tillhandahålls.
- Bättre konceptualisering: ADT ger oss en bättre konceptualisering av den verkliga världen.
- Robust: Programmet är robust och har förmågan att fånga upp fel.
- Inkapsling : ADT:er döljer datas interna detaljer och tillhandahåller ett offentligt gränssnitt för användare att interagera med data. Detta möjliggör enklare underhåll och modifiering av datastrukturen.
- Dataabstraktion : ADT ger en abstraktionsnivå från implementeringsdetaljerna för data. Användare behöver bara veta vilka operationer som kan utföras på data, inte hur dessa operationer implementeras.
- Datastrukturoberoende : ADT:er kan implementeras med hjälp av olika datastrukturer, såsom arrayer eller länkade listor, utan att påverka ADT:s funktionalitet.
- Döljer information: ADT:er kan skydda dataintegriteten genom att endast tillåta åtkomst till auktoriserade användare och operationer. Detta hjälper till att förhindra fel och missbruk av data.
- Modularitet : ADT kan kombineras med andra ADT för att bilda större, mer komplexa datastrukturer. Detta möjliggör större flexibilitet och modularitet vid programmering.
Sammantaget ger ADT ett kraftfullt verktyg för att organisera och manipulera data på ett strukturerat och effektivt sätt.
Abstrakta datatyper (ADT) har flera fördelar och nackdelar som bör beaktas när man bestämmer sig för att använda dem i mjukvaruutveckling. Här är några av de viktigaste fördelarna och nackdelarna med att använda ADT:
Fördelar:
- Inkapsling : ADT ger ett sätt att kapsla in data och operationer i en enda enhet, vilket gör det lättare att hantera och modifiera datastrukturen.
- Abstraktion : ADT:er tillåter användare att arbeta med datastrukturer utan att behöva känna till implementeringsdetaljerna, vilket kan förenkla programmering och minska fel.
- Datastrukturoberoende : ADT kan implementeras med hjälp av olika datastrukturer, vilket kan göra det lättare att anpassa sig till förändrade behov och krav.
- Döljer information : ADT:er kan skydda dataintegriteten genom att kontrollera åtkomst och förhindra obehöriga ändringar.
- Modularitet : ADT:er kan kombineras med andra ADT:er för att bilda mer komplexa datastrukturer, vilket kan öka flexibiliteten och modulariteten i programmering.
Nackdelar:
- Över huvudet : Implementering av ADT kan lägga till overhead i termer av minne och bearbetning, vilket kan påverka prestanda.
- Komplexitet : ADT:er kan vara komplexa att implementera, särskilt för stora och komplexa datastrukturer.
- Inlärning Kurva: Att använda ADT kräver kunskap om deras implementering och användning, vilket kan ta tid och ansträngning att lära sig.
- Begränsad flexibilitet: Vissa ADT:er kan vara begränsade i sin funktionalitet eller kanske inte är lämpliga för alla typer av datastrukturer.
- Kosta : Implementering av ADT kan kräva ytterligare resurser och investeringar, vilket kan öka kostnaderna för utveckling.
Sammantaget överväger fördelarna med ADT ofta nackdelarna, och de används i stor utsträckning inom mjukvaruutveckling för att hantera och manipulera data på ett strukturerat och effektivt sätt. Det är dock viktigt att ta hänsyn till de specifika behoven och kraven för ett projekt när man bestämmer sig för om man ska använda ADT.
java tecken till sträng
Av dessa definitioner kan vi tydligt se att definitionerna inte specificerar hur dessa ADT kommer att representeras och hur operationerna kommer att utföras. Det kan finnas olika sätt att implementera en ADT, till exempel kan List ADT implementeras med hjälp av arrayer, eller enkellänkad lista eller dubbellänkad lista. På liknande sätt kan stack ADT och Queue ADT implementeras med hjälp av arrayer eller länkade listor.