Программа внесения элементов односвязного списка - Pascal
Формулировка задачи:
Дан список. После каждого элемента списка добавить ту часть списка, которая была перед ним.
Решение задачи: «Программа внесения элементов односвязного списка»
textual
Листинг программы
type tList = ^rList; rList = record n : Integer; x : tList; end; function rnd : Integer; begin rnd := Random(100); end; function CreateList(count : Integer) : tList; var List, Last, Cur : tList; begin New(List); List^.n := rnd; Last := List; while count > 1 do begin New(Last^.x); Last := Last^.x; Last^.n := rnd; dec(count); end; Last^.x := nil; CreateList := List; end; procedure OutList(List : tList); begin while List <> nil do begin Write(List^.n:3); List := List^.x; end; WriteLn; end; procedure ConvertList(var List : tList); var Cur, tmp, tail, add : tList; begin Cur := List; while Cur^.x <> nil do Cur := Cur^.x; repeat tmp := List; tail := Cur^.x; add := Cur; while tmp <> Cur do begin New(add^.x); add := add^.x; add^.n := tmp^.n; tmp := tmp^.x; end; add^.x := tail; tail := Cur; Cur := List; while Cur^.x <> tail do Cur := Cur^.x; until Cur = List; end; var List : tList; begin Randomize; List := CreateList(10); WriteLn('Список:'); OutList(List); ConvertList(List); WriteLn('Новый список:'); OutList(List); end.
Объяснение кода листинга программы
- В этом коде используется структура данных
односвязный список
, реализованная с помощью указателей на записи. - Тип
tList
определен как указатель на запись типаrList
. - Задана функция
rnd
, которая генерирует случайное целое число от 0 до 99. - Функция
CreateList
создает новый список заданного размера, инициализируя каждый элемент списка случайным числом. - Процедура
OutList
выводит список на экран, перебирая все его элементы. - Процедура
ConvertList
преобразует список, изменяя порядок элементов в нем. - В основной части кода создается список из 10 элементов, выводится на экран, преобразуется, а затем выводится вновь.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д