СПИСКИ
Задача
Структура данных
Последовательность действий
Результат
Удаление списка
Печать списка
40.50K
Category: programmingprogramming

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

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 do
begin
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
English     Русский Rules