program DodajPrviElement type pokelement=^element; element=record podatak:integer; sledeci:pokelement; end; function dodaj(p:pokelement; n:integer):pokelement; var pom:pokelement; begin if p=NIL then begin new(p); p^.podatak := n; p^.sledeci := NIL; end else begin pom := p; while pom^.sledeci <> NIL do pom := pom^.sledeci; new(pom^.sledeci); pom := pom^.sledeci; pom^.podatak := n; pom^.sledeci := NIL; end; dodaj:=p; end; procedure stampaj_listu( p:pokelement); var pom:pokelement; begin pom := p; if p <> NIL then begin repeat write(pom^.podatak,' '); pom:=pom^.sledeci; until pom = NIL; end else writeln('prazna.'); end; procedure DodajNaPocetak(var p: pokelement; n: integer); var pom: pokelement; begin new(pom); pom^.podatak := n; pom^.sledeci := p; p := pom; end; var n,i,x:integer; glava:pokelement; begin glava := NIL; writeln('Unesi broj elemenata u listi:'); readln(n); for i:=1 to n do begin writeln('Unesi ',i,'. element:'); readln(x); glava := dodaj(glava, x); end; write('Unesite element za dodavanje: '); readln(x); DodajNaPocetak(glava, x); writeln('Kreirana lista je:'); stampaj_listu( glava ); end.
Kako funkcioniše
1. Deklaracija funkcije i promenljivih
procedure DodajNaPocetak(var p: pokelement; n: integer);
var
pom: pokelement;
p
je promenljiva tipapokelement
koja predstavlja pokazivač na prvi element povezane liste.n
je celobrojna vrednost koja predstavlja podatak koji želimo da dodamo.pom
je pomoćni pokazivač koji će biti korišćen za kreiranje novog elementa.
2. Kreiranje novog čvora
new(pom);
pom^.podatak := n;
pom^.sledeci := p;
new(pom)
: Kreira novi čvor (element) u memoriji i dodeljuje mu pokazivačpom
.pom^.podatak := n
: Dodeljuje vrednostn
u podatak novog čvora.pom^.sledeci := p
: Povezuje novi čvor sa postojećom listom tako što postavlja njegovsledeci
pokazivač na trenutni prvi element liste (p
).
3. Ažuriranje početnog pokazivača
p := pom;
- Na kraju,
p
se postavlja napom
, što znači da je novi čvor sada prvi u listi, a prethodni prvi čvor je sada drugi u listi.