Линейные односвязные списки

Слайд 2

Задача

Построить линейный односвязный список из чисел, которые содержатся в текстовом файле
Пусть для

Задача Построить линейный односвязный список из чисел, которые содержатся в текстовом файле
примера это будут такие числа:
5 3 0 10

Слайд 3

Структура данных

type Tinf = integer;
Tptr = ^Tlist;
Tlist = record
inf:Tinf;
next:Tptr;
end;
var head,p,q: Tptr;

Структура данных type Tinf = integer; Tptr = ^Tlist; Tlist = record
f:textfile;

Слайд 4

Последовательность действий

head:=nil;
while not eof(f)do
begin
new(p);
read(f,p^.inf);
if head=nil
then
head:=p
else
q^.next:=p;

Последовательность действий head:=nil; while not eof(f)do begin new(p); read(f,p^.inf); if head=nil then
q:=p
end;
p^.next:=nil;

q

q

Слайд 5

Результат

q
свободный указатель
связанный указатель

p

Результат q свободный указатель связанный указатель p

Слайд 6

Удаление списка

while head <> nil do
begin
p:= head;
head:= head^.next;
dispose(p);

Удаление списка while head nil do begin p:= head; head:= head^.next; dispose(p); end; Результат: head=nil
end;
Результат: head=nil