> -- Vlad писал(а):
> Понятнее и обобщеннее. Список - это структура, ввод соответствующего типа выражает это явно в коде. И это позволит написать функцию работы со списком один раз.Я и так написал один раз.## Код:
```
PROCEDURE Add (list, i: Item);
(* Add new item i to the list. The list is sorted by name, ascending. The first item in the list is a fake root. *)
BEGIN
   ASSERT (i # NIL, 20);
   ASSERT (i.next = NIL, 21);
   ASSERT (i.name # '', 22);
   ASSERT (list # NIL, 23);
   ASSERT (list.name = '', 24);
   WHILE (list.next # NIL) & (i.name > list.next.name) DO
      list := list.next
   END;
   i.next := list.next;
   list.next := i
END Add;
```
