Articles

Abstract data structures

Abstract data types

tietojenkäsittelytieteessä Abstrakti tietotyyppi (ADT) on matemaattinen malli tietotyypeille, joissa tietotyyppi määritellään sen käyttäytymisen (semantiikan) perusteella datan käyttäjän näkökulmasta, erityisesti mahdollisten arvojen, tämän tyyppisten tietojen mahdollisten operaatioiden ja näiden operaatioiden käyttäytymisen kannalta. Tämä on ristiriidassa tietorakenteiden kanssa, jotka ovat konkreettisia tiedon esityksiä ja ovat toteuttajan, Ei käyttäjän näkökulmasta.

muodollisesti ADT voidaan määritellä ”niiden olioiden luokaksi, joiden looginen käyttäytyminen määritellään arvojen ja operaatioiden joukon avulla”; tämä on matematiikassa analogista algebrallisen rakenteen kanssa. Se, mitä tarkoitetaan ”käyttäytymisellä”, vaihtelee kirjoittajittain, ja käyttäytymisen muodollisten määrittelyjen kaksi päätyyppiä ovat Aksiomaattinen (algebrallinen) määrittely ja abstrakti malli; nämä vastaavat abstraktin koneen aksiomaattista semantiikkaa ja operatiivista semantiikkaa. Jotkut kirjoittajat sisältävät myös laskennallisen monimutkaisuuden (”kustannukset”) sekä ajan (laskutoimitusten) että avaruuden (arvojen edustamisen) suhteen.

abstrakteja rakenteita käytetään siksi, että ne käyttävät tehokkaasti niihin tallennetun datan rakenteeseen perustuvaa muistia. Erittäin suuria tietomääriä tai hyvin usein muuttuvat TIEDOT, tietorakenne voi tehdä valtava ero tehokkuutta (ajonaika) tietokoneohjelmasi.

yleisemmässä kielenkäytössä Abstrakti tietorakenne on vain jokin datan järjestely, jonka olemme rakentaneet järjestykseen.

täydellisen ihana yleiskuva

eräät abstraktien tietorakenteiden tyypit

IB: n arvioima

  1. staattinen ja dynaaminen tietorakenne
  • kaksiulotteiset Tietorakenteet
  • jono
  • linkitetty luettelo
  • puu puu

  • kokoelmat
  • ekursio

    ei ole IB: n arvioima, mutta ne pitäisi tuntea

    luettelee

  • sanakirjat
  • setit
  • tuple
  • tietorakenteiden perustoiminnot

    löysin tämän erinomaisen dian Simon allardicelta.

    matriisien perusoperaatiot.png

    eri tietorakenteiden Vertailu

    ja elementtien poistaminen, kokoelman iterointi

    tietorakenne vahvuudet heikkoudet
    lajittelu ja haku, lisääminen ja poistaminen – varsinkin jos lisäät ja poistat taulukon alussa tai lopussa
    linkitetty lista suora indeksointi, helppo luoda ja käyttää suora pääsy, haku ja lajittelu
    pinon ja jonon suunniteltu LIFO / FIFO suora pääsy, haku ja lajittelu
    binääripuu lisäys-ja poistonopeus, käytön nopeus, lajiteltun järjestyksen ylläpitäminen jotkut yläpuoliset
    • kiinteät rakenteet ovat nopeampia / pienempiä
    • kun pohditaan, kannattaako käyttää abstraktia tietorakennetta, kannattaa kysyä itseltään: mikä pitää hallussaan eniten dataa ja mikä eniten muuttunutta dataa?

    staattisten vs dynaamisten tietorakenteiden Vertailu

    tätä vertailua käytetään tietojenkäsittelytieteen oppikirjastamme.

    Staattinen tietorakenne dynaaminen tietorakenne
    tehoton, koska muistiin on varattu sellaista, jota ei välttämättä tarvita. tehokas, koska muistin määrä vaihtelee tarpeen mukaan.
    Nopea pääsy jokaiseen tietoelementtiin, sillä muistipaikka on kiinteä ohjelmaa kirjoitettaessa. hitaampi pääsy kuhunkin elementtiin, koska muistin sijainti jaetaan suoritusaikana.
    varatut Muistiosoitteet ovat vierekkäisiä, joten niiden käyttö on nopeampaa. annetut Muistiosoitteet voivat olla pirstaloituneita, joten niiden käyttö on hitaampaa.
    rakenteet ovat kiinteän kokoisia, mikä tekee niiden kanssa työskentelystä ennakoitavampaa. Ne voivat sisältää esimerkiksi otsikon. rakenteiden koko vaihtelee, joten tarvitaan mekanismi, jolla tiedetään nykyisen rakenteen koko.
    tietojen eri osien välinen suhde ei muutu. tiedon eri osien välinen suhde muuttuu ohjelmaa suoritettaessa.

    valitsemalla mitä tietorakennetta käyttää

    tätä graafia käytetään valtavalla kiitoksella Dartford Grammar Schoolin tietojenkäsittelytieteen osastolta.

    valitsemalla tietotyypin vuokaavio.png

    standardit

    • tunnistavat tilanteen, joka vaatii rekursiivisen ajattelun käyttöä.
    • tunnista rekursiivinen ajattelu tietyssä ongelmaratkaisussa.
    • Jäljitä rekursiivinen algoritmi, jolla ilmaistaan ratkaisu ongelmaan.
    • kuvaa kaksiulotteisen joukon ominaisuuksia.
    • rakentaa algoritmeja käyttäen kaksiulotteisia taulukoita.
    • kuvaa pinon ominaisuuksia ja sovelluksia.
    • rakentaa algoritmeja käyttäen pinon pääsymenetelmiä.
    • kuvaa jonon ominaisuuksia ja sovelluksia.
    • muodosta algoritmeja jonon pääsymenetelmiä käyttäen.
    • selittää matriisien käytön staattisina pinoina ja jonoina.
    • kuvaa dynaamisen tietorakenteen ominaisuuksia ja ominaisuuksia.
    • kuvaa, miten linkitetyt listat toimivat loogisesti.
    • Sketsiyhteiset listat (single -, tupla-ja ympyrälistat).
    • kuvaile kokoelman ominaisuuksia ja sovelluksia.
    • rakentaa algoritmeja käyttäen kokoelman pääsymenetelmiä.
    • keskustelee aliohjelmien ja kokoelmien tarpeesta ohjelmoitujen ratkaisujen sisällä.
    • rakentaa algoritmeja käyttäen ennalta määriteltyjä aliohjelmia, yksiulotteisia taulukoita ja / tai kokoelmia.
    • kuvaa, miten puut toimivat loogisesti (sekä binääriset että ei-binääriset).
    • Määrittele termit: vanhempi, vasen-lapsi, oikea-lapsi, subtre, juuri ja lehti.
    • ilmoita inerder -, postorder-ja preerder tree traversialin tulos.
    • Sketch binary trees.
    • Määrittele termi dynaaminen tietorakenne.
    • vertaa staattisten ja dynaamisten tietorakenteiden käyttöä.
    • ehdottaa sopivaa rakennetta tiettyyn tilanteeseen.