Tietojenkäsittelytieteessä kasa on puutyyppinen erikoistietorakenne , joka täyttää keon ominaisuuden : jos B on solmun A lapsisolmu , niin avain( A ) ≥ avain( B ). Tästä seuraa, että suurimman avaimen omaava elementti on aina keon juurisolmu, joten joskus tällaisia kasoja kutsutaan max-kekoiksi (vaihtoehtoisesti, jos vertailu käännetään, pienin elementti on aina juurisolmu, tällaisia kasoja kutsutaan ns. min-kasat ). Ei ole rajoituksia, kuinka monta lapsisolmua kullakin pinosolmulla on, vaikka käytännössä tämä määrä on yleensä enintään kaksi. Keko on prioriteettijonoksi kutsutun abstraktin tietotyypin tehokkain toteutus . Kasat ovat tärkeitä joissakin tehokkaissa graafialgoritmeissa , kuten Dijkstran algoritmissa d- kekoille ja heapsortille .
Keon tietorakennetta ei pidä sekoittaa dynaamisen muistin allokoinnin keon käsitteeseen . Termiä käytettiin ensin erityisesti tietorakenteille. Jotkut varhaiset suositut ohjelmointikielet, kuten LISP , tarjosivat dynaamista muistin varausta käyttämällä "kasa"-tietorakennetta, joka antoi nimensä varatulle muistimäärälle. [1] .
Kekot toteutetaan yleensä taulukoina, mikä eliminoi osoittimien tarpeen elementtien välillä.
Seuraavat toiminnot suoritetaan yleensä kasoilla:
Alla on arvioita tietyntyyppisten kasojen toimintojen laskutoimitusten aikamonimutkaisuudesta. [1] Kun arvo on merkitty tähdellä, arvio perustuu kuoletusanalyysiin (huonoin aika), muuten arvio on tavallinen huonoin tapaus. O(F) antaa asymptoottisen ylärajan ja Θ(F) on asymptoottisesti tarkka estimaatti (katso merkintä "O" suuri ja "o" pieni ). Toimintojen nimet valitaan min-kekolle.
(*) Kuoletusaika
(**) Missä n on suurimman kasan koko
Huomaa, että "Brodalin jono" on toteutus rinnakkaisesta prioriteettijonosta, jonka on kehittänyt Gert Brodalin johtama ryhmä. [3]
Keon tietorakenteilla on monia käyttötarkoituksia.
Täydellinen ja lähes täydellinen binäärikeko voidaan esittää erittäin tehokkaasti käyttämällä indeksitaulukkoa . Ensimmäinen (tai viimeinen) elementti sisältää juuren. Matriisin kaksi seuraavaa elementtiä sisältävät juuren lapsisolmut. Seuraavat neljä elementtiä sisältävät neljä lasta kahdesta solmusta, jotka ovat juuren lapsia jne. Siten tasosolmun lapset nsijoittuvat yhdestä indeksoidulle taulukolle paikoille ja joukolle tai sijoille 2nja taulukolle indeksoidulle taulukolle. nollasta. Tämän avulla voit siirtyä ylös tai alas puussa tekemällä yksinkertaisia taulukkoindeksilaskelmia. Kasan tasapainotus tehdään järjestämällä uudelleen epäkunnossa olevia elementtejä. Koska voimme rakentaa kasan käyttämällä taulukkoa, jossa ei ole ylimääräistä muistia (esimerkiksi solmuille), voimme käyttää kasalajittelua taulukon järjestämiseen paikoilleen. 2n+12n+12n+2
Tietorakenteet | |
---|---|
Luettelot | |
puut | |
Laskee | |
Muut |
Käyttöjärjestelmien näkökohdat | |||||
---|---|---|---|---|---|
| |||||
Tyypit |
| ||||
Nucleus |
| ||||
Prosessien hallinta |
| ||||
Muistinhallinta ja osoitus |
| ||||
Lataus- ja alustustyökalut | |||||
kuori | |||||
Muut | |||||
Luokka Wikimedia Commons Wikikirjat Wikisanakirja |