) (temp); (* Прибрати перший елемент з пам'яті *)
end;; dellastel (var list: pt); temp: pt; (list <> NIL) then (* Якщо списку не порожній, то *)
if (list ^. next = NIL) then (* Якщо в списку один елемент *)
delfirstel (list) (* Видалити його *) (* інакше *)
temp: = getprelastel (list); (* Знайти передостанній елемент списку *) (temp ^. next); (* Видалити наступний за ним *)
temp ^. next: = NIL;;; delel (var list: pt; el: pt); temp: pt; ((list <> NIL) and (el <> NIL) ) then (* Якщо дано елемент для видалення і списку не порожній *)
begin (el ^. next = NIL) then (* Якщо елемент, який потрібно видалити - останній у списку *) (list ^. next = NIL) then (* І якщо він ще і єдиний * ) (list) (* Видалить його, тобто перший елемент *) (* Інакше, якщо він не єдиний *) (list) (* Видалить його, тобто останній елемент *): = el ^. next; (* Скопіювати в цей елемент наступний за ним *)
el ^. info: = temp ^. info; ^. next: = temp ^. next;
dispose (temp); (* Видалити наступний за цим елемент *)
end;;; delbefore (var list: pt; info: byte); temp: pt; (list <> NIL) then (* Якщо список не порожній *): = searchpreel (list, info); (* Знайти елемент, що передує шуканого *)
delel (list, temp); (* І видалити його *)
end;; delafter (var list: pt; info: byte); temp: pt; (list <> NIL) then (* Якщо список, чи не порожній *): = searchel (list, info); (* Знайти шуканий елемент *)
temp: = temp ^. next; (* І видалити наступний за ним *)
delel (list, temp);; printlist (list: pt);; (list = NIL) then (* Якщо список порожній *)
writeln ('Список порожній!') (* Повідомити про це *) (list <> NIL) do (* Поки поточний елемент списку не останній *)
begin (list ^. info); (* Роздрукувати його *)
list: = list ^. next; (* Перецті до наступного елементу *)
if (list <> NIL) then (',') ('.');;;; checkel (list: pt; info: byte); (searchel (list, info) < ;> NIL) then
writeln ('Елемент', info, 'існує.') ('Елемент', info, 'не існує.');;;
{процедура підрахунку summi елементів}
Procedure Col (List: pt; var S: byte);: pt;: = 0;
L: = List; {покажчик на початок списку}
while L <> nil do begin: = S + L ^. info;
L: = L ^. next;; ('Сума елементів списку', S);
ReadKey;; showmenu;;
Writeln ('1) Додати елемент в початок списку '); ('2) Додати елемент в кінець списку'); ('3) Роздрукувати список '); ('4...