ВУЗ:
Составители:
Рубрика:
- 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
- …
- следующая ›
- последняя »