logo

Abstraktit tietotyypit

Tässä artikkelissa opimme ADT:stä, mutta ennen kuin ymmärrämme, mitä ADT on, meidän on harkittava erilaisia ​​meille toimitettuja sisäänrakennettuja tietotyyppejä. Tietotyyppejä, kuten int, float, double, long jne. pidetään sisäänrakennetuina tietotyypeinä ja voimme suorittaa niillä perustoimintoja, kuten yhteen-, vähennys-, jakolasku-, kertolasku- jne. Nyt voi tulla tilanne, jossa tarvitsemme operaatioita käyttäjän määrittämälle tietotyypille, jotka on määritettävä. Nämä toiminnot voidaan määritellä vain silloin, kun niitä vaadimme. Joten ongelmien ratkaisuprosessin yksinkertaistamiseksi voimme luoda tietorakenteita niiden toimintoineen, ja sellaisia ​​tietorakenteita, joita ei ole sisäänrakennettu, tunnetaan nimellä Abstract Data Type (ADT).

c-merkkijono taulukossa

Abstract Data type (ADT) on tyyppi (tai luokka) objekteille, joiden käyttäytyminen määritetään arvojoukon ja operaatioiden avulla. ADT:n määritelmä mainitsee vain, mitkä toiminnot tulee suorittaa, mutta ei sitä, kuinka nämä toiminnot toteutetaan. Se ei määrittele, miten tiedot järjestetään muistiin ja mitä algoritmeja käytetään toimintojen toteuttamiseen. Sitä kutsutaan abstraktiksi, koska se antaa toteutuksesta riippumattoman näkemyksen.

Prosessi, jossa tarjotaan vain olennainen ja piilotetaan yksityiskohdat, tunnetaan abstraktioina.



Käyttäjä Joten käyttäjän tarvitsee vain tietää, mitä tietotyyppi voi tehdä, mutta ei sitä, kuinka se toteutetaan. Ajattele ADT:tä mustana laatikkona, joka piilottaa tietotyypin sisäisen rakenteen ja suunnittelun. Nyt määrittelemme kolme ADT:tä Lista ADT, Jonottaa ADT.

1. Listaa ADT

Vies of list

  • Tiedot tallennetaan yleensä avainsekvenssissä listaan, jonka päärakenne koostuu Kreivi , osoittimia ja vertailutoiminnon osoite tarvitaan luettelon tietojen vertaamiseen.
  • Datasolmu sisältää osoitin tietorakenteeseen ja a itseviittaava osoitin joka osoittaa luettelon seuraavaan solmuun.
  • The Listaa ADT-funktiot on annettu alla:
  • get() – Palauta elementti luettelosta mihin tahansa paikkaan.
  • insert() – Lisää elementti mihin tahansa luettelon kohtaan.
  • remove() – Poistaa minkä tahansa elementin ensimmäinen esiintymä ei-tyhjästä luettelosta.
  • removeAt() – Poista tietyssä paikassa oleva elementti ei-tyhjästä luettelosta.
  • korvaa() – Korvaa elementin missä tahansa paikassa toisella elementillä.
  • size() – palauttaa luettelon elementtien määrän.
  • isEmpty() – Palauttaa tosi, jos lista on tyhjä, muussa tapauksessa palauttaa false.
  • isFull() – Palauttaa tosi, jos lista on täynnä, muussa tapauksessa palauttaa false.

2. Pinoa ADT

shilpa shetty

Näkymä pinosta

  • Pino ADT -toteutuksessa sen sijaan, että tiedot tallennettaisiin kuhunkin solmuun, osoitin dataan tallennetaan.
  • Ohjelma varaa muistia tiedot ja osoite siirretään pinoon ADT.
  • Pääsolmu ja datasolmut on kapseloitu ADT:hen. Kutsuva toiminto näkee vain osoittimen pinoon.
  • Pinopään rakenne sisältää myös osoittimen alkuun ja Kreivi tällä hetkellä pinossa olevien merkintöjen määrästä.
  • push() – Lisää elementti pinon toiseen päähän nimeltä top.
  • pop() – Poista ja palauta pinon yläosassa oleva elementti, jos se ei ole tyhjä.
  • peek() – Palauta pinon yläosassa oleva elementti poistamatta sitä, jos pino ei ole tyhjä.
  • size() – palauttaa pinon elementtien määrän.
  • isEmpty() – Palauttaa tosi, jos pino on tyhjä, muussa tapauksessa palauttaa false.
  • isFull() – Palauttaa tosi, jos pino on täynnä, muussa tapauksessa palauttaa false.

3. Jono ADT

Näkymä jonosta

kuinka alustaa taulukko javassa
  • Jonon abstrakti tietotyyppi (ADT) noudattaa pinon abstraktin tietotyypin perusrakennetta.
  • Jokainen solmu sisältää tyhjän osoittimen tiedot ja linkin osoitin jonon seuraavaan elementtiin. Ohjelman vastuulla on varata muistia tietojen tallentamista varten.
  • enqueue() – Lisää elementti jonon loppuun.
  • dequeue() – Poista ja palauta jonon ensimmäinen elementti, jos jono ei ole tyhjä.
  • peek() – Palauta jonon elementti poistamatta sitä, jos jono ei ole tyhjä.
  • size() – Palauttaa jonon elementtien määrän.
  • isEmpty() – Palauta tosi, jos jono on tyhjä, muussa tapauksessa palauttaa false.
  • isFull() – Palauta tosi, jos jono on täynnä, muussa tapauksessa palauttaa false.

ADT:n ominaisuudet:

Abstraktit tietotyypit (ADT:t) ovat tapa kapseloida tiedot ja niihin liittyvät toiminnot yhdeksi yksiköksi. Jotkut ADT:n tärkeimmistä ominaisuuksista ovat:

  • Abstraktio: Käyttäjän ei tarvitse tietää tietorakenteen toteutusta, vain olennaiset asiat tarjotaan.
  • Parempi käsitys: ADT antaa meille paremman käsitteen todellisesta maailmasta.
  • Tukeva: Ohjelma on vankka ja pystyy havaitsemaan virheitä.
  • Kapselointi : ADT:t piilottavat tietojen sisäiset tiedot ja tarjoavat käyttäjille julkisen käyttöliittymän tietojen kanssa vuorovaikutukseen. Tämä mahdollistaa tietorakenteen helpon ylläpidon ja muokkaamisen.
  • Datan abstraktio : ADT:t tarjoavat tietyn tason abstraktion datan toteutusyksityiskohdista. Käyttäjien tarvitsee vain tietää toiminnot, jotka voidaan suorittaa datalle, ei sitä, kuinka nämä toiminnot toteutetaan.
  • Tietorakenteen riippumattomuus : ADT:t voidaan toteuttaa käyttämällä erilaisia ​​tietorakenteita, kuten taulukoita tai linkitettyjä listoja, vaikuttamatta ADT:n toimivuuteen.
  • Tietojen piilottaminen: ADT:t voivat suojata tietojen eheyden sallimalla pääsyn vain valtuutetuille käyttäjille ja toiminnoille. Tämä auttaa estämään virheitä ja tietojen väärinkäyttöä.
  • Modulaarisuus : ADT:t voidaan yhdistää muiden ADT:ien kanssa muodostamaan suurempia, monimutkaisempia tietorakenteita. Tämä mahdollistaa suuremman joustavuuden ja modulaarisuuden ohjelmointiin.

Kaiken kaikkiaan ADT:t tarjoavat tehokkaan työkalun tietojen järjestämiseen ja käsittelyyn jäsennellyllä ja tehokkaalla tavalla.

Abstrakteilla tietotyypeillä (ADT) on useita etuja ja haittoja, jotka tulee ottaa huomioon päätettäessä käyttää niitä ohjelmistokehityksessä. Tässä on joitain ADT:n käytön tärkeimmistä eduista ja haitoista:

Edut:

  • Kapselointi : ADT:t tarjoavat tavan kapseloida tiedot ja toiminnot yhdeksi yksiköksi, mikä helpottaa tietorakenteen hallintaa ja muokkaamista.
  • Abstraktio : ADT:n avulla käyttäjät voivat työskennellä tietorakenteiden kanssa ilman, että heidän tarvitsee tietää toteutustietoja, mikä voi yksinkertaistaa ohjelmointia ja vähentää virheitä.
  • Tietorakenteen riippumattomuus : ADT:t voidaan toteuttaa erilaisilla tietorakenteilla, mikä voi helpottaa sopeutumista muuttuviin tarpeisiin ja vaatimuksiin.
  • Tietojen piilottaminen : ADT:t voivat suojata tietojen eheyttä hallitsemalla pääsyä ja estämällä luvattomat muutokset.
  • Modulaarisuus : ADT:t voidaan yhdistää muihin ADT:ihin monimutkaisempien tietorakenteiden muodostamiseksi, mikä voi lisätä ohjelmoinnin joustavuutta ja modulaarisuutta.

Haitat:

  • Yläpuolella : ADT:iden käyttöönotto voi lisätä ylimääräistä muistia ja käsittelyä, mikä voi vaikuttaa suorituskykyyn.
  • Monimutkaisuus : ADT:t voivat olla monimutkaisia ​​toteuttaa, erityisesti suurille ja monimutkaisille tietorakenteille.
  • Oppiminen Käyrä: ADT:iden käyttäminen vaatii tietoa niiden toteutuksesta ja käytöstä, minkä oppiminen voi viedä aikaa ja vaivaa.
  • Rajoitettu joustavuus: Jotkut ADT:t voivat olla toiminnaltaan rajoitettuja tai ne eivät välttämättä sovellu kaikentyyppisille tietorakenteille.
  • Kustannus : ADT:n käyttöönotto saattaa vaatia lisäresursseja ja investointeja, mikä voi lisätä kehityskustannuksia.

Kaiken kaikkiaan ADT:iden edut ovat usein haitat suuremmat, ja niitä käytetään laajasti ohjelmistokehityksessä tietojen hallintaan ja käsittelyyn jäsennellyllä ja tehokkaalla tavalla. On kuitenkin tärkeää ottaa huomioon hankkeen erityistarpeet ja -vaatimukset, kun päätetään, käytetäänkö ADT:itä.

saada taulukon pituus c

Näistä määritelmistä voimme selvästi nähdä, että määritelmät eivät täsmennä, kuinka nämä ADT:t esitetään ja miten toiminnot suoritetaan. ADT:n toteuttamiseen voi olla erilaisia ​​tapoja, esimerkiksi List ADT voidaan toteuttaa käyttämällä taulukoita tai yksitellen linkitettyä listaa tai kaksoislinkitettyä listaa. Samoin pino-ADT ja jono-ADT voidaan toteuttaa käyttämällä taulukoita tai linkitettyjä listoja.