43 lines
979 B
ObjectPascal
43 lines
979 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. |