length[A]
: taulukon alkioiden lukumäärä (pituus)heap-size[A]
: taulukkoon A talletetun keon alkioiden lukumääräheap-size[A] ≤ length[A]
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.
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).
This document was last updated 03.11.2011. Please send your comments to Mikko Laakso and Ari Korhonen.