Динамические списки. Программа, которая должна вставлять в непустой список L новый элемент перед последним - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Добрый вечер, имеется программа, которая должна вставлять в непустой список L новый элемент перед последним. Вместо этого просто создается новый список. Будьте любезны, помогите исправить:

Решение задачи: «Динамические списки. Программа, которая должна вставлять в непустой список L новый элемент перед последним»

textual
Листинг программы
procedure AddBeforeLast(var L : uk; znach:tinf);
var
  q, t : uk;
  first : boolean;
begin
  new(t);
  t^.x := znach;
 
  q := L;
  first := true;
  while (q^.adr <> nil) and (q^.adr^.adr <> nil) do
  begin
    q := q^.adr;
    first := false;
  end;
 
  t^.adr := q^.adr;
  q^.adr := t;
  if first then L := q;
end;
 
// ...
 
Begin
  SOZD_SPIS;
  VIVOD('исходн');
  AddBeforeLast(first, 1); // Вызываешь именно функцию "Добавить перед последним"
  VIVOD('после вставки');
  readkey;
End.

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

  1. Создается новый элемент t, который будет хранить значение znach.
  2. Переменная q инициализируется ссылкой на первый элемент списка L. Переменная first устанавливается в true, чтобы отслеживать, является ли q первым элементом.
  3. Запускается цикл, который продолжается до тех пор, пока q не указывает на nil, что означает конец списка.
  4. Внутри цикла переменная q обновляется, чтобы указывать на следующий элемент в списке. Переменная first устанавливается в false, чтобы отслеживать, является ли текущий элемент последним.
  5. Когда q указывает на nil, это означает, что мы достигли конца списка. В этом случае t становится последним элементом списка L.
  6. Конец функции.
  7. Вызывается функция AddBeforeLast с аргументами first и 1. Это добавляет элемент перед последним элементом списка L.
  8. Выводится сообщение после вставки.
  9. Вызывается функция readkey, чтобы прочитать ввод пользователя.

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


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

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

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