142 Rozdział 5. Struktury danych
a ż do momentu znalezienia właściwego dlań miejsca. Popatrzmy na efekt zadziałania procedury NaDol wykonanej na pewnej stercie (patrz rysunek 5 - 21).
Rys. S - 21.
II lisi racja procedury NaDol.
Element 12 został zaznaczony wytłuszczoną czcionką. Za pomocą pogrubionej kreski zaprezentowano drogę, po której zstępował element 12 w stronę swojego... miejsca ostatecznego spoczynku!
Oto jak można sposób zrealizować procedurę NaDol:
void StertaNaDol()
{
int i-1; while(1!
(
int p=2*i; // lewy potomek węzła "i": p, prawy: p+1
if(p>L) break;
if(p+l<=L) //prawy potomek niekoniecznie musi istnieć!
if(t[p]<t[p+1])
p++; // przesuwamy się dc następnego
if(L[i]>=L(p]) break;
int temp - t[p]; // zamiana
t[pl=t[i); t[i]-temp;
i=p;
}
Sposób korzystania ze sterty jest zbliżony do poprzednio opisanych struktur danych i nie powinien sprawić Czytelnikowi żadnych problemów. Nieco bardziej interesujące jest ukazanie efektownego zastosowania sterty do... sortowania danych.