Слайд 2Задача
Построить линейный односвязный список из чисел, которые содержатся в текстовом файле
Пусть для
![Задача Построить линейный односвязный список из чисел, которые содержатся в текстовом файле](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/954747/slide-1.jpg)
примера это будут такие числа:
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](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/954747/slide-2.jpg)
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](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/954747/slide-3.jpg)
Слайд 5Результат
q
свободный указатель
связанный указатель
p
![Результат q свободный указатель связанный указатель p](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/954747/slide-4.jpg)
Слайд 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](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/954747/slide-5.jpg)
end;
Результат: head=nil