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

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

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

правильная процедура добавления элемента в конец очереди? подскажите пожалуйста
  procedure vnachalo(var p:list; x:integer ); {dobavlenie elem}
  var q:list; l:list;
  begin
   p:=l;
   if p<>nil then begin
   while p^.next<>nil do
   p:=p^.next; {v konec}
   new(q); 
   q^.info:=x;
   p^.next:=q;
   p:=q; end
   else
   new(q);
   q^.info:=x;
   q^.next:=nil;
  end;

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

textual
Листинг программы
procedure vkonec(var p:list; x:integer);
var q, l : list;
begin
  l := p;
  while (l <> nil) and (l^.next <> nil) do l := l^.next;
  new(q);
  q^.info := x;
  q^.next := nil;
  if l = nil then p := q else l^.next := q;
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
Похожие ответы