the_king
مدیرکل انجمن
کد برنامه زیر یک لیست پیوندی را مدیریت می کند :
کد:
program prg;
uses crt;
type
list=^rec;
rec=record
value:string;
next:list;
end;
var
newrec,pastrec,currec,delrec,first,temp:list;
c:char;
n,i,position:integer;
procedure add;
begin
new(newrec);
write('New String :');
readln(newrec^.value);
write('Position :');
readln(position);
n:=n+1;
pastrec:=first;
for i:=1 to n do
begin
if i=position then break;
if pastrec^.next=nil then break;
pastrec:=pastrec^.next;
end;
newrec^.next:=pastrec^.next;
pastrec^.next:=newrec;
end;
procedure show;
begin
pastrec:=first;
while (pastrec^.next<>nil) do
begin
pastrec:=pastrec^.next;
writeln (pastrec^.value);
end;
readkey;
end;
procedure del;
begin
write('String for Del :');
readln(delrec^.value);
pastrec:=first;
while (pastrec^.next<>nil) do
begin
temp:=pastrec;
pastrec:=pastrec^.next;
if pastrec^.value=delrec^.value then
begin
n:=n-1;
temp^.next:=pastrec^.next;
dispose(pastrec);
end;
end;
end;
begin
first^.next:=nil;
repeat
clrscr;
writeln('1) ADD 2) DEL 3) LIST 4) EXIT');
c:=readkey;
case c of
'1' : add;
'2' : del;
'3' : show;
end;
until (c='4');
pastrec:=first;
while (pastrec^.next<>nil) do
begin
pastrec:=pastrec^.next;
temp:=pastrec;
dispose(temp);
end;
end.