Правильно ли написана процедура добавления элемента в конец очереди? - Free Pascal

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

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

правильная процедура добавления элемента в конец очереди? подскажите пожалуйста
Листинг программы
  1. procedure vnachalo(var p:list; x:integer ); {dobavlenie elem}
  2. var q:list; l:list;
  3. begin
  4. p:=l;
  5. if p<>nil then begin
  6. while p^.next<>nil do
  7. p:=p^.next; {v konec}
  8. new(q);
  9. q^.info:=x;
  10. p^.next:=q;
  11. p:=q; end
  12. else
  13. new(q);
  14. q^.info:=x;
  15. q^.next:=nil;
  16. end;

Решение задачи: «Правильно ли написана процедура добавления элемента в конец очереди?»

textual
Листинг программы
  1. procedure vkonec(var p:list; x:integer);
  2. var q, l : list;
  3. begin
  4.   l := p;
  5.   while (l <> nil) and (l^.next <> nil) do l := l^.next;
  6.   new(q);
  7.   q^.info := x;
  8.   q^.next := nil;
  9.   if l = nil then p := q else l^.next := q;
  10. end;

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

В данном коде реализована процедура добавления элемента в конец связанного списка.

  1. Создаются три переменные: p (ссылка на голову списка), q (новая вершина списка) и l (текущая вершина списка). Значение переменной p равно голове списка.
  2. В цикле while происходит обход списка до тех пор, пока не будет найдена последняя вершина списка (вершина, у которой next равно nil).
  3. Создается новая вершина списка q. В поле info записывается значение переменной x, а в поле next записывается nil.
  4. Если список пуст, то p присваивается значение q. Если не пуст, то в поле next текущей вершины списка записывается значение q.
  5. Конец процедуры.

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


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

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

6   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы