34 lines
1.2 KiB
ObjectPascal
34 lines
1.2 KiB
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. |