Ennen kuin tiedämme abstraktista tietotyypistä, meidän pitäisi tietää, mikä on tietorakenne.
Mikä on tietorakenne?
Tietorakenne on tekniikka tietojen järjestämiseksi siten, että dataa voidaan hyödyntää tehokkaasti. Tietorakennetta voi tarkastella kahdella tavalla:
Miksi tietorakenne?
Tietorakenteen käytön edut ovat seuraavat:
- Nämä ovat välttämättömiä ainesosia, joita käytetään nopeiden ja tehokkaiden algoritmien luomiseen.
- Ne auttavat meitä hallitsemaan ja järjestämään tietoja.
- Tietorakenteet tekevät koodista selkeämmän ja helpommin ymmärrettävän.
Mikä on abstrakti tietotyyppi?
Abstrakti tietotyyppi on tietorakenteen abstraktio, joka tarjoaa vain rajapinnan, johon tietorakenteen tulee liittyä. Käyttöliittymä ei anna tarkempia tietoja siitä, mitä pitäisi toteuttaa tai millä ohjelmointikielellä.
Toisin sanoen voidaan sanoa, että abstraktit tietotyypit ovat entiteettejä, jotka ovat tietojen ja toimintojen määritelmiä, mutta joilla ei ole toteutustietoja. Tässä tapauksessa tiedämme tallentamamme tiedot ja toiminnot, joita datalle voidaan suorittaa, mutta emme tiedä toteutus yksityiskohdista. Syy toteutustietojen puuttumiseen on esimerkiksi se, että jokaisella ohjelmointikielellä on erilainen toteutusstrategia; C-tietorakenne toteutetaan käyttämällä rakenteita, kun taas C++-tietorakenne on toteutettu objektien ja luokkien avulla.
Esimerkiksi, Lista on abstrakti tietotyyppi, joka on toteutettu dynaamisen taulukon ja linkitetyn luettelon avulla. Jono toteutetaan käyttämällä linkitettyä luettelopohjaista jonoa, taulukkopohjaista jonoa ja pinopohjaista jonoa. Kartta toteutetaan puukartalla, tiivistekartalla tai hash-taulukolla.
Abstrakti tietotyyppimalli
Ennen kuin tiedämme abstraktista tietotyyppimallista, meidän tulisi tietää abstraktio ja kapselointi.
rinnakkainen käsittely
Abstraktio: Se on tekniikka piilottaa sisäiset tiedot käyttäjältä ja näyttää vain tarpeelliset tiedot käyttäjälle.
Kapselointi: Se on tekniikka tietojen ja jäsenfunktion yhdistämiseksi yhdeksi yksiköksi, jota kutsutaan kapseloinniksi.
Yllä oleva kuva näyttää ADT-mallin. ADT-mallissa on kahdenlaisia malleja, eli julkinen toiminto ja yksityinen toiminto. ADT-malli sisältää myös tietorakenteet, joita käytämme ohjelmassa. Tässä mallissa suoritetaan ensimmäinen kapselointi, ts. kaikki data kääritään yhteen yksikköön, eli ADT:hen. Sitten abstraktio suoritetaan tarkoittaa, että näytetään operaatiot, jotka voidaan suorittaa tietorakenteelle ja mitkä ovat tietorakenteet, joita käytämme ohjelmassa.
java-merkkijono jsoniin
Ymmärretään abstraktia tietotyyppiä tosielämän esimerkillä.
Jos ajatellaan älypuhelinta. Tarkastelemme älypuhelimen korkeita teknisiä ominaisuuksia, kuten:
- 4 Gt RAM-muistia
- Snapdragon 2.2ghz prosessori
- 5 tuuman LCD-näyttö
- Kaksoiskamera
- Android 8.0
Yllä olevat älypuhelimen tekniset tiedot ovat tietoja, ja voimme suorittaa älypuhelimella myös seuraavat toiminnot:
Älypuhelin on kokonaisuus, jonka tiedot tai tekniset tiedot ja toiminnot on annettu yllä. Abstrakti/looginen näkymä ja toiminnot ovat älypuhelimen abstrakteja tai loogisia näkymiä.
Yllä olevan abstraktin/loogisen näkymän toteutusnäkymä on annettu alla:
class Smartphone { private: int ramSize; string processorName; float screenSize; int cameraCount; string androidVersion; public: void call(); void text(); void photo(); void video(); }
Yllä oleva koodi on älypuhelimella suoritettavien eritelmien ja toimintojen toteutus. Toteutusnäkymä voi vaihdella, koska ohjelmointikielten syntaksi on erilainen, mutta abstrakti/looginen näkymä tietorakenteesta säilyisi samana. Siksi voidaan sanoa, että abstrakti/looginen näkymä on riippumaton toteutusnäkymästä.
Huomautus: Tiedämme toiminnot, jotka voidaan suorittaa ennalta määritetyille tietotyypeille, kuten int, float, char jne., mutta emme tiedä tietotyyppien toteutustietoja. Siksi voimme sanoa, että abstraktia tietotyyppiä pidetään piilotettuna laatikkona, joka piilottaa kaikki tietotyypin sisäiset yksityiskohdat.
Esimerkki tietorakenteesta
Oletetaan, että meillä on indeksitaulukko, jonka koko on 4. Meillä on hakemiston sijainti alkaen 0, 1, 2, 3. Taulukko on tietorakenne, jossa elementit on tallennettu vierekkäiseen paikkaan. Ensimmäisen elementin muistiosoite on 1000, toisen elementin on 1004, kolmannen elementin on 1008 ja neljännen elementin on 1012. Koska se on kokonaislukutyyppiä, se vie 4 tavua ja kunkin elementin osoitteiden ero on 4 tavua. Taulukkoon tallennetut arvot ovat 10, 20, 30 ja 40. Nämä arvot, indeksipaikat ja muistiosoitteet ovat toteutuksia.
Kokonaislukutaulukon abstrakti tai looginen näkymä voidaan ilmaista seuraavasti:
- Se tallentaa joukon kokonaislukutyyppisiä elementtejä.
- Se lukee elementit sijainnin, eli indeksin, mukaan.
- Se muokkaa elementtejä indeksin mukaan
- Se suorittaa lajittelun
Kokonaislukutaulukon toteutusnäkymä:
a[4] = {10, 20, 30, 40} cout<< a[2] a[3] = 50