Sa se se insereze o inregistrare dupa o anumita cheie intr-o lista simplu inlantuita.

 

 

Rezolvare

 

 

uses crt;

 type pnod=^nod;

      nod=record

      leg:pnod;

      inf:integer;

      end;

var d,aux,b,cap1,cap2:pnod;

    i,N, cheie:integer;

procedure creaza_nod1;

begin

 new(b);

 new(cap1);

 new(cap2);

 cap1:=b;

 cap2:=b;

 write('da cheia nodului 1 ');

 readln(b^.inf);

 b^.leg:=nil;

end;

 

PROCEDURE PUNE_NOD_IN_LISTA;

begin

 new(b);

 cap2^.leg:=b;

 write('da cheia nodului', i, ' ' );

 readln(b^.inf);

 b^.leg:=nil;

 cap2:=b;

end;

 

procedure parcurge_lista;

begin

 b:=cap1;

 while b<>nil do

 begin

  writeln('afisez cheia nodului curent si fac legatura cu urm. nod  ',b^.inf);

  b:=b^.leg;

end;

end;

 

procedure inserare_dreapta;

begin

 write('da cheia nodului dupa care se face inserarea ');

 readln(cheie);

 b:=cap1;

 while b^.inf<>cheie do

  begin

   b:=b^.leg;

  end;

 

aux:=b^.leg;

new(d);

b^.leg:=d;

write('ce pui in lista ');

readln(d^.inf);

d^.leg:=aux;

end;

 

begin

clrscr;

write('cate noduri pui in lista ');

readln(n);

creaza_nod1;

writeln;

for i:=2 to n do

PUNE_NOD_IN_LISTA;

writeln;

 

parcurge_lista;

inserare_dreapta;

parcurge_lista;

repeat until keypressed;

end.

 

2.Sa se  stearga dupa o anumita cheie intr-o lista simplu inlantuita.

 

 

uses crt;

 type pnod=^nod;

      nod=record

      leg:pnod;

      inf:integer;

      end;

var d,aux,b,cap1,cap2:pnod;

    i,N, cheie:integer;

procedure creaza_nod1;

begin

 new(b);

 new(cap1);

 new(cap2);

 cap1:=b;

 cap2:=b;

 write('da cheia nodului 1 ');

 readln(b^.inf);

 b^.leg:=nil;

end;

 

PROCEDURE PUNE_NOD_IN_LISTA;

begin

 new(b);

 cap2^.leg:=b;

 write('da cheia nodului', i, ' ' );

 readln(b^.inf);

 b^.leg:=nil;

 cap2:=b;

end;

 

procedure parcurge_lista;

begin

 b:=cap1;

 while b<>nil do

 begin

  writeln('afisez cheia nodului curent si fac legatura cu urm. nod  ',b^.inf);

  b:=b^.leg;

end;

end;

 

procedure sterge;

begin

 write('da cheia nodului dupa care se va sterge ');

 readln(cheie);

 b:=cap1;

 while b^.inf<>cheie do

  begin

   aux:=b;

   b:=b^.leg;

  end;

 

aux^.leg:=b^.leg;

dispose(b);

end;

 

begin

clrscr;

write('cate noduri pui in lista ');

readln(n);

creaza_nod1;

writeln;

for i:=2 to n do

PUNE_NOD_IN_LISTA;

writeln;

 

parcurge_lista;

sterge;;

parcurge_lista;

repeat until keypressed;

end.

 

3. CONSTRUIREA UNEI LISTE SIMPLU INLANTUITE

CU DATE DINTR-UN FIS.TEX

 

{

CONSTRUIREA UNEI LISTE SIMPLU INLANTUITE

CU DATE DINTR-UN FIS.TEX

}

uses crt;

 type pnod=^nod;

      nod=record

      leg:pnod;

      inf:integer;

      end;

var b,cap1,cap2:pnod;

    i:integer;

F:TEXT;

procedure deschide_f;

begin

assifn(f,'date.txt');

reset(f);

readln(f,n)

end;

 

procedure creaza_nod1;

begin

 new(b);

 new(cap1);

 new(cap2);

 cap1:=b;

 cap2:=b;

 read(f,b^.inf);

 b^.leg:=nil;

end;

 

PROCEDURE PUNE_NOD_IN_LISTA;

begin

 new(b);

 cap2^.leg:=b;

 write('da cheia nodului' );

 read(f,b^.inf);

 b^.leg:=nil;

 cap2:=b;

end;

 

procedure parcurge_lista;

begin

 b:=cap1;

 while b<>nil do

 begin

  writeln('afisez cheia nodului curent si fac legatura cu urm. nod  ',b^.inf);

  b:=b^.leg;

end;

end;

 

begin

clrscr;

deschide_f;

creaza_nod1;

writeln;

for i:=2 to n do

PUNE_NOD_IN_LISTA;

writeln;

parcurge_lista;

close(f);

repeat until keypressed;

end.