> -- Xanmark3 писал(а):
> (* insert between p and h *)Присвоение записи n полю next записи р. А как это р вставляется в  List?
Если речь об этом:

IF p # NIL THEN (* insert between p and h *)
p.next := n

то p уже вставлено в список.
p сначала было равно NIL, потом list, потом list.next, ...
p просто последовательно указывает на элементы в списке.
Когда p пробегает по элементам списка в предыдущем цикле, со связями элементов списка ничего не делается, элементы остаются связанными в список.