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

34 lines
856 B
ObjectPascal

// Использование ссылок вместо указателей для создания односвязного списка
type
Node = class
data: integer;
next: Node;
constructor (d: integer; n: Node);
begin
data := d;
next := n;
end;
end;
// Переменная типа "класс" представляет собой ссылку на объект, выделяемый конструктором
var first: Node;
begin
first := nil;
// Добавляем в начало односвязного списка
first := new Node(3,first);
first := new Node(7,first);
first := new Node(5,first);
// Вывод односвязного списка. ^ отсутствуют
writeln('Содержимое односвязного списка (использование ссылок вместо указателей): ');
var p := first;
while p<>nil do
begin
write(p.data,' ');
p := p.next;
end;
// Разрушение односвязного списка
first := nil; // Сборщик мусора соберет память, на которую никто больше не указывает
end.