next up previous
Next: Naloga Up: Domača naloga Previous: Domača naloga

Opis delovanja funkcije zlij

Na vajah smo napisali funkcijo zlij , ki zlije dva seznama v en seznam.

PRIMER:
$ sez1 = 1\hspace{0.1 cm} 3\hspace{0.1 cm}
6\hspace{0.1 cm} 8\hspace{0.1 cm} ; $
$ sez2 = 2\hspace{0.1 cm} 4\hspace{0.1 cm} 5\hspace{0.1 cm} ; $
$ \Longrightarrow nov\_seznam = 1\hspace{0.1 cm} 2\hspace{0.1 cm}
3\hspace{0.1 cm} 4\hspace{0.1 cm}
5\hspace{0.1 cm} 6\hspace{0.1 cm}
8\hspace{0.1 cm} ; $

Del kode funkcije zlij , izgleda takole:

tSeznam rezultat;
int glava;

if (sez1 == NULL) return sez2;
if (sez2 == NULL) return sez1;
rezultat = NULL;
do{
  if (vred_glave(sez1) > vred_glave(sez2))
    sez2 = izloci_glavo(&glava, sez2);
  else 
    sez1 = izloci_glavo(&glava, sez1);
  rezultat = Dodaj_na_koncu(glava, rezultat);
} while ((sez1 == NULL) || (sez2 == NULL));

Funkcija zlij pa deluje na naslednji način:

Ugotovili smo, da oba seznama hkrati ne moreta biti prazna.
To pa zaradi tega, ker:

1.
na začetku zanke oba seznama nista prazna,
2.
v zanki se vedno samo en seznam krajša.



Andrej Brodnik (Andy)
1999-05-26