Similar presentations:
Линейные односвязные списки
1. СПИСКИ
линейные односвязные списки2. Задача
• Построить линейный односвязный список изчисел, которые содержатся в текстовом
файле
• Пусть для примера это будут такие числа:
5
3
0
10
2
3. Структура данных
type Tinf = integer;Tptr = ^Tlist;
Tlist = record
inf:Tinf;
next:Tptr;
end;
var head,p,q: Tptr;
f:textfile;
3
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;
q:=p
end;
p^.next:=nil;
5
head
q
p
5
head
3
p
q
5
head
q
3
p
4
5. Результат
• свободный указатель• связанный указатель
head
5
0
3
q
10
p
5
6. Удаление списка
while head <> nil dobegin
p:= head;
head:= head^.next;
dispose(p);
end;
Результат: head=nil
head
5
3
0
10
p
6
7. Печать списка
p:= head;while p <> nil do
begin
write (p^.inf:5);
p:= p^.next;
end;
7