Правильно ли написана процедура добавления элемента в конец очереди? - 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;
Объяснение кода листинга программы
В данном коде реализована процедура добавления элемента в конец связанного списка.
- Создаются три переменные:
p
(ссылка на голову списка),q
(новая вершина списка) иl
(текущая вершина списка). Значение переменнойp
равно голове списка. - В цикле
while
происходит обход списка до тех пор, пока не будет найдена последняя вершина списка (вершина, у которойnext
равноnil
). - Создается новая вершина списка
q
. В полеinfo
записывается значение переменнойx
, а в полеnext
записываетсяnil
. - Если список пуст, то
p
присваивается значениеq
. Если не пуст, то в полеnext
текущей вершины списка записывается значениеq
. - Конец процедуры.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д