1.Sa se 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.