An Abstract Data Type (ADT) ir konceptuāls modelis, kas definē datu struktūras darbību un uzvedību kopu nenorādot, kā šīs darbības tiek īstenotas vai kā dati tiek sakārtoti atmiņā. ADT definīcijā ir minēts tikai tas, kas ir jāveic operācijas bet ne kā šīs operācijas tiks īstenotas. Tas nenorāda, kā dati tiks sakārtoti atmiņā un kādi algoritmi tiks izmantoti darbību īstenošanai. To sauc par “abstraktu”, jo tas nodrošina no ieviešanas neatkarīgu skatījumu.
Process, kurā tiek nodrošināta tikai būtiskā informācija un tiek slēpta informācija, ir pazīstams kā abstrakcija.
ADT iezīmes
Abstract data tips (ADT) ir veids, kā iekapsulēt datus un darbības ar šiem datiem vienā vienībā. Dažas no galvenajām ADT iezīmēm ir:
- Abstrakcija: Lietotājam nav jāzina datu struktūras ieviešana, tiek sniegta tikai būtiskā informācija.
- Labāka konceptualizācija: ADT sniedz mums labāku reālās pasaules konceptualizāciju.
- Izturīgs: Programma ir izturīga un spēj uztvert kļūdas.
- Iekapsulēšana : ADT slēpj datu iekšējo informāciju un nodrošina publisku saskarni, lai lietotāji varētu mijiedarboties ar datiem. Tas ļauj vieglāk uzturēt un modificēt datu struktūru.
- Datu abstrakcija : ADT nodrošina abstrakcijas līmeni no datu ieviešanas detaļām. Lietotājiem ir jāzina tikai darbības, kuras var veikt ar datiem, nevis to, kā šīs darbības tiek īstenotas.
- Datu struktūras neatkarība : ADT var ieviest, izmantojot dažādas datu struktūras, piemēram, masīvus vai saistītos sarakstus, neietekmējot ADT funkcionalitāti.
- Informācijas slēpšana: ADT var aizsargāt datu integritāti, atļaujot piekļuvi tikai pilnvarotiem lietotājiem un darbībām. Tas palīdz novērst kļūdas un datu ļaunprātīgu izmantošanu.
- Modularitāte : ADT var apvienot ar citiem ADT, lai veidotu lielākas, sarežģītākas datu struktūras. Tas nodrošina lielāku programmēšanas elastību un modularitāti.
Kopumā ADT ir spēcīgs rīks datu organizēšanai un manipulēšanai strukturētā un efektīvā veidā.
Šis attēls parāda, kā abstraktais datu tips (ADT) slēpj iekšējās datu struktūras (piemēram, ar masīviem saistītos sarakstus), izmantojot publiskas un privātas funkcijas, kas lietojumprogrammai atklāj tikai noteiktu saskarni.

Kāpēc izmantot ADT?
Galvenie iemesli ADT izmantošanai Java ir uzskaitīti zemāk:
- Iekapsulēšana: Aiz tīras saskarnes slēpj sarežģītas ieviešanas detaļas.
- Atkārtota izmantošana : ļauj veikt dažādas iekšējas ieviešanas (piemēram, masīvu vai saistīto sarakstu), nemainot ārējo lietojumu.
- Modularitāte: Vienkāršo apkopi un atjaunināšanu, atdalot loģiku.
- Drošība: Aizsargā datus, novēršot tiešu piekļuvi, samazinot kļūdas un neparedzētas izmaiņas.
Abstrakcijas piemērs
Piemēram, mēs izmantojam primitīvas vērtības, piemēram, int float un char, saprotot, ka šie datu tipi var darboties un izpildīt, nezinot par to ieviešanas detaļām. ADT darbojas līdzīgi, definējot kādas darbības ir iespējamas, nedetalējot to izpildi.
Atšķirība starp ADT un UDT
Tālāk esošajā tabulā parādīta atšķirība starp ADT un UDT.
atsaukt pēdējo apņemšanos
Aspekts | Abstract Data Types (ADT) | Lietotāja definēti datu tipi (UDT) |
|---|---|---|
Definīcija | Definē objektu klasi un darbības, ko ar tiem var veikt, kopā ar to paredzamo uzvedību (semantiku), bet nenorādot ieviešanas detaļas. | Pielāgots datu tips, kas izveidots, apvienojot vai paplašinot esošos primitīvos tipus, kas norāda gan struktūru, gan darbības. |
Fokuss atzvanīšanas ellē javascript | Kādas darbības ir atļautas un kā tās uzvedas, nenorādot, kā tās tiek īstenotas. | Kā dati tiek organizēti atmiņā un kā tiek veiktas darbības. |
Mērķis | Nodrošina abstraktu modeli datu struktūru definēšanai konceptuālā veidā. | Ļauj programmētājiem izveidot konkrētus datu struktūru implementācijas, izmantojot primitīvus tipus. |
Īstenošanas informācija | Nav norādīts, kā operācijas tiek īstenotas vai kā dati tiek strukturēti. | Norāda, kā izveidot un kārtot datu tipus, lai ieviestu struktūru. |
Lietošana | Izmanto datu struktūru projektēšanai un konceptualizēšanai. | Izmanto, lai ieviestu datu struktūras, kas realizē ADT definētos abstraktos jēdzienus. |
Piemērs | Saraksts ADT Stack ADT Queue ADT. | Struktūras klašu uzskaitījumu ieraksti. |
ADT piemēri
Tagad sapratīsim trīs izplatītākos ADT: sarakstu ADT Stack ADT un rindas ADT.
1. Uzskaitiet ADT
Saraksts ADT (abstraktais datu tips) ir secīga elementu kolekcija, kas atbalsta darbību kopu. nenorādot iekšējo ieviešanu . Tas nodrošina sakārtotu veidu, kā saglabāt piekļuvi un modificēt datus.
Vies of listDarbības:
List ADT ir jāsaglabā nepieciešamie dati secībā, un tai ir jāveic šādas darbības :
ASV pilsētu nosaukumi
- iegūt (): Atgriezt elementu no saraksta jebkurā noteiktā vietā.
- ievietot (): Ievietojiet elementu jebkurā saraksta vietā.
- noņemt (): Noņemiet jebkura elementa pirmo reizi no saraksta, kas nav tukšs.
- RemoveAt(): Noņemiet elementu noteiktā vietā no saraksta, kas nav tukšs.
- aizstāt (): Aizstāt elementu jebkurā vietā ar citu elementu.
- izmērs (): Atgrieziet elementu skaitu sarakstā.
- ir Tukšs(): Atgriezt true, ja saraksts ir tukšs; pretējā gadījumā atgriezt nepatiesu.
- isFull(): Atgriezt patiesu, ja saraksts ir pilns, pretējā gadījumā atgriezt false. Piemērojams tikai fiksēta izmēra implementācijās (piemēram, uz masīviem balstītos sarakstos).
2. Sakraut ADT
Stack ADT ir lineāra datu struktūra, kas seko LIFO (Last In First Out) principam. Tas ļauj pievienot un noņemt elementus tikai no viena gala, ko sauc par kaudzes augšdaļu.
Skats uz kaudziDarbības:
Stack ADT ievietošanas un dzēšanas secībai ir jāatbilst FILO vai LIFO principam. Elementi tiek ievietoti un izņemti no tā paša gala, ko sauc par kaudzes augšdaļu. Tam jāatbalsta arī šādas darbības:
- push (): Ievietojiet elementu vienā kaudzes galā, ko sauc par augšdaļu.
- pop(): Noņemiet un atgrieziet elementu kaudzes augšpusē, ja tas nav tukšs.
- palūrēt (): Ja kaudzīte nav tukša, atgrieziet elementu kaudzes augšpusē, to nenoņemot.
- izmērs (): Atgriezt elementu skaitu kaudzē.
- ir Tukšs(): Atgriezt true, ja kaudze ir tukša; pretējā gadījumā atgriezt nepatiesu.
- isFull(): Atgriezt true, ja kaudze ir pilna; pretējā gadījumā atgriezt nepatiesu. Attiecas tikai uz fiksētas ietilpības skursteņiem (piemēram, uz masīvu bāzes).
3. Rinda ADT
Rinda ADT ir lineāra datu struktūra, kas atbilst FIFO (First In First Out) principam. Tas ļauj elementus ievietot vienā galā (aizmugurē) un noņemt no otra gala (priekšpusē).
Skats uz rinduDarbības:
Rindas ADT dizains ir līdzīgs Stack ADT, taču ievietošanas un dzēšanas secība mainās uz FIFO. Elementi tiek ievietoti vienā galā (saukti par aizmuguri) un noņemti no otra gala (ko sauc par priekšējo). Tam jāatbalsta šādas darbības:
tostring java metode
- rindā (): Ievietojiet elementu rindas beigās.
- attiecīgi (): Noņemiet un atgrieziet pirmo rindas elementu, ja rinda nav tukša.
- palūrēt (): Ja rinda nav tukša, atgrieziet rindas elementu, to nenoņemot.
- izmērs (): Atgriezt rindā esošo elementu skaitu.
- ir Tukšs(): Atgriezt true, ja rinda ir tukša; pretējā gadījumā atgriezt nepatiesu.
ADT priekšrocības un trūkumi
Abstraktajiem datu tipiem (ADT) ir vairākas priekšrocības un trūkumi, kas jāņem vērā, pieņemot lēmumu par to izmantošanu programmatūras izstrādē. Šeit ir dažas no galvenajām ADT izmantošanas priekšrocībām un trūkumiem:
Priekšrocība:
Priekšrocības ir uzskaitītas zemāk:
- Iekapsulēšana : ADT nodrošina veidu, kā iekapsulēt datus un darbības vienā vienībā, atvieglojot datu struktūras pārvaldību un modificēšanu.
- Abstrakcija : ADT ļauj lietotājiem strādāt ar datu struktūrām, nezinot ieviešanas detaļas, kas var vienkāršot programmēšanu un samazināt kļūdas.
- Datu struktūras neatkarība : ADT var ieviest, izmantojot dažādas datu struktūras, kas var atvieglot pielāgošanos mainīgajām vajadzībām un prasībām.
- Informācijas slēpšana : ADT var aizsargāt datu integritāti, kontrolējot piekļuvi un novēršot nesankcionētas modifikācijas.
- Modularitāte : ADT var apvienot ar citiem ADT, lai izveidotu sarežģītākas datu struktūras, kas var palielināt programmēšanas elastību un modularitāti.
Trūkumi:
Trūkumi ir uzskaitīti zemāk:
- Virs galvas : ADT ieviešana var palielināt atmiņas un apstrādes izmaksas, kas var ietekmēt veiktspēju.
- Sarežģītība : ADT var būt sarežģīti ieviest, īpaši lielām un sarežģītām datu struktūrām.
- Mācīšanās Līkne: lai izmantotu ADT, ir nepieciešamas zināšanas par to ieviešanu un lietošanu, kuras apgūšana var aizņemt laiku un pūles.
- Ierobežota elastība: Dažiem ADT var būt ierobežota funkcionalitāte vai tie var nebūt piemēroti visu veidu datu struktūrām.
- Izmaksas : ADT ieviešanai var būt nepieciešami papildu resursi un ieguldījumi, kas var palielināt izstrādes izmaksas.