bt_bb_section_bottom_section_coverage_image

Dodavanje elementa na pocetak

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 tipa pokelement 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 vrednost n u podatak novog čvora.
  • pom^.sledeci := p: Povezuje novi čvor sa postojećom listom tako što postavlja njegov sledeci pokazivač na trenutni prvi element liste (p).

3. Ažuriranje početnog pokazivača

p := pom;
  • Na kraju, p se postavlja na pom, što znači da je novi čvor sada prvi u listi, a prethodni prvi čvor je sada drugi u listi.
image

Komentariši