o: byte): pt; (list <> NIL) then (* Якщо список не порожній *) ((list ^. next <> NIL) and (list ^. info <> info)) do (* Поки поточний елемент не останній і не шуканий *): = list ^. next; (* Переходити до наступного елемента списку *)
if (list ^. info <> info) then (* якщо шуканий елемент не знайдений *): = NIL (* повернути покажчик на порожній список *) (* Інакше *): = list; (* Повернути покажчик на цей елемент *) (* Інакше *): = NIL; (* Повернути покажчик на порожній список *)
end;; searchpreel (list: pt; info: byte): pt; nextel: pt; (list <> NIL) then (* Якщо список не порожній *): = list;: = nextel; (* Переходити до наступного елемента списку *) (list ^. next <> NIL) then: = list ^. next; ((nextel ^. next = NIL) or (nextel ^. info = info)); ( * поки наступний за поточним елемент - не останній або шуканий *)
if (nextel ^. info <> info) or (nextel = list) then (* Якщо потрібний нам елемент не знайдений або у списку 1 елемент *): = NIL (* Повернути покажчик на порожній список *) (* Інакше *): = list; (* Повернути покажчик на знайдений елемент *) (* Інакше, якщо контактів немає *): = NIL; (* Повернути покажчик на порожній список *)
end;; getelem (elname: string): byte; ret: byte; ('Введіть', elname, ':'); (ret);: = ret;; addtobegin (var list: pt; info: byte); newelem: pt; (newelem); (* створити в пам'яті новий елемент *) ^. info: = info; ^. next: = list; (* Приєднати до цього елемента спіоск *)
list: = newelem; (* Повернути його, як початок нового списку *)
end; addafter (listel: pt; info: byte); newelem: pt; (listel <> NIL) then (* Якщо список не порожній *)
begin (newelem); (* Створити в пам'яті новий елемент *) ^. info: = info; ^. next: = listel ^. next; (* Вставити елемент між заданим елементом і наступним *)
listel ^. next: = newelem;;; addtoend (var list: pt; info: byte); (list = NIL) then (* Якщо список порожній *)
addtobegin (list, info) (* Додати елемент в початок, створивши новий список *) (* Інакше *) (getlastel (list), info); (* Додати елемент після останнього *) p>
end; addbefore (listel: pt; info: byte); newelem: pt; (listel <> NIL) then (* Якщо список не порожній *)
begin (newelem); (* Створити в пам'яті новий елемент *) ^. info: = listel ^. info; (* Скопіювати в нього заданий елемент списку *) ^. info: = info; ( * Записати в заданий елемент списку після доданого *) ^. next: = listel ^. next; (* Вставити заданий елемент списку після доданого *)
listel ^. next: = newelem;;; delfirstel (var list: pt); temp: pt; (list <> NIL) then (* Якщо список не порожній *)
begin: = list; (* Збереже в пам'яті адресу першого елемента *): = list ^. next; (* Відрізати від списку перший елемент *...