Программа внесения элементов односвязного списка - 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.

Объяснение кода листинга программы

  1. В этом коде используется структура данных односвязный список, реализованная с помощью указателей на записи.
  2. Тип tList определен как указатель на запись типа rList.
  3. Задана функция rnd, которая генерирует случайное целое число от 0 до 99.
  4. Функция CreateList создает новый список заданного размера, инициализируя каждый элемент списка случайным числом.
  5. Процедура OutList выводит список на экран, перебирая все его элементы.
  6. Процедура ConvertList преобразует список, изменяя порядок элементов в нем.
  7. В основной части кода создается список из 10 элементов, выводится на экран, преобразуется, а затем выводится вновь.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы