pascalabcnet/TestSuite/CompilationSamples/Pointer4.pas
Бондарев Иван e6e67c193c initial commit
2015-05-14 21:35:07 +02:00

43 lines
787 B
ObjectPascal

// Âûäåëåíèå äèíàìè÷åñêîé ïàìÿòè
// Èñïîëüçîâàíèå óêàçàòåëåé äëÿ ñîçäàíèÿ îäíîñâÿçíîãî ñïèñêà
type
PNode = ^TNode;
TNode = record
data: integer;
next: PNode;
end;
function NewNode(d: integer; n: PNode): PNode;
begin
New(Result);
Result^.data := d;
Result^.next := n;
end;
var first: PNode;
begin
first := nil;
// Äîáàâëÿåì â íà÷àëî îäíîñâÿçíîãî ñïèñêà
first := NewNode(3,first);
first := NewNode(7,first);
first := NewNode(5,first);
// Âûâîä îäíîñâÿçíîãî ñïèñêà
writeln('Ñîäåðæèìîå îäíîñâÿçíîãî ñïèñêà: ');
var p := first;
while p<>nil do
begin
write(p^.data,' ');
p := p^.next;
end;
// Ðàçðóøåíèå îäíîñâÿçíîãî ñïèñêà
p := first;
while p<>nil do
begin
var p1 := p;
p := p^.next;
Dispose(p1);
end;
end.