ВУЗ:
Составители:
Рубрика:
- 30 -
while not eoln do
begin {добавляем в список следующее звено}
new(p↑.next); read(p↑.next↑.elem );
p:=p↑.next
{p указывает на добавленное звено }
end;
{ последнее звено должно иметь ссылку nil }
p↑.next:=nil
end ;
readln {пропускаем маркер конца строки}
end;
Задача 2. Описать процедуру print(L), которая печатает все элементы списка
L. Тип элементов – char.
Решение
procedure print(L:list);
{печатает в файл output строку из элементов списка L}
begin
while L<>nil do
begin write(L↑.elem);
L:=L↑.next
end;
writeln
end;
Рекурсивное решение было приведено в разделе «Рекурсивная обработка
списков».
Задача 3. Описать процедуру exchange(L), которая меняет первый и
последний элементы непустого списка L.
Решение
procedure exchange(L:list);
{ меняет местами элементы первого
и последнего звеньев
непустого списка L}
var e: elemtype;
p: link;
begin
p:=L; {находим последнее звено}
while p↑.next<>nil do p:=p↑.next;
{теперь p указывет на последнее звено;
L указывает на первое}
{меняем местами первый и последний элементы}
e:=L↑.elem; L↑.elem:=p↑.elem; p↑.elem:=e
end;
while not eoln do
begin {добавляем в список следующее звено}
new(p↑.next); read(p↑.next↑.elem );
p:=p↑.next
{p указывает на добавленное звено }
end;
{ последнее звено должно иметь ссылку nil }
p↑.next:=nil
end ;
readln {пропускаем маркер конца строки}
end;
Задача 2. Описать процедуру print(L), которая печатает все элементы списка
L. Тип элементов – char.
Решение
procedure print(L:list);
{печатает в файл output строку из элементов списка L}
begin
while L<>nil do
begin write(L↑.elem);
L:=L↑.next
end;
writeln
end;
Рекурсивное решение было приведено в разделе «Рекурсивная обработка
списков».
Задача 3. Описать процедуру exchange(L), которая меняет первый и
последний элементы непустого списка L.
Решение
procedure exchange(L:list);
{ меняет местами элементы первого и последнего звеньев
непустого списка L}
var e: elemtype;
p: link;
begin
p:=L; {находим последнее звено}
while p↑.next<>nil do p:=p↑.next;
{теперь p указывет на последнее звено;
L указывает на первое}
{меняем местами первый и последний элементы}
e:=L↑.elem; L↑.elem:=p↑.elem; p↑.elem:=e
end;
- 30 -
Страницы
- « первая
- ‹ предыдущая
- …
- 28
- 29
- 30
- 31
- 32
- …
- следующая ›
- последняя »
