Prioriteettijonot ja keko

  1. Johdanto ja määritelmiä
  2. Keon esittäminen taulukkona
  3. Minimikeko vs. maksimikeko
  4. Alkion lisääminen
  5. Suurimman alkion poistaminen
  6. Kekoehdon ylläpito (maksimikeko)
  7. Keon rakentaminen
  8. Kekojärjestäminen
  9. Keon korkeus

2. Keon esittäminen taulukkona

Keko toteutetaan taulukkona, mutta sen toiminta on helpompi hahmottaa, jos se on esitetty binääripuuna. Binääripuuesityksen ja taulukkoesityksen välinen vastaavuus on yksikäsitteinen. Taulukkoesitys saadaan binääripuuesityksestä käymällä alkiot läpi tasojärjestyksessä.

Kuvassa 1 on erään maksimikeon binääripuuesitys, ja sitä vastaava taulukkoesitys.


Kuva 1: Maksimikeon [16,14,10,8,7,9,3,2,4,1] binääripuu- ja taulukkoesitys.

2.1 Taulukon käsittelyrutiinit

Tarkastellaan keon i:nnettä solmua, jossa on arvo A[i]

PARENT(i) = i/2 Palauttaa solmun isän indeksin (jakolasku on katkaiseva)
LEFT(i) = 2i Palauttaa solmun vasemman lapsen indeksin
RIGHT(i) = 2i+1 Palauttaa solmun oikean lapsen indeksin

Esimerkki 1: Kuvan 1 solmun i=3 (A[3]=10) isäsolmu on PARENT(3) = 3/2 = 1 (A[1] = 16). Lisäksi sen lapset ovat paikoissa LEFT(3) = 2*3 = 6 ja RIGHT(3) = 2*3 + 1 = 7 (A[6] = 9 ja A[7] = 3, vastaavasti).



Edellinen luku: Johdanto ja määritelmiä Seuraava luku: Minimikeko vs. maksimikeko

This document was last updated 03.11.2011. Please send your comments to Mikko Laakso and Ari Korhonen.