Просто интересно, какую оценку вы получили на вступительном экзамене по русскому языку?

Пример создания линейного однонаправленного списка без заглавного элемента в прямом порядке следования:


type Ss=^elem;
elem=record
inf:byte;
next:ss
end;
var p,q,l:ss;
{i,E,E1,N:byte;}
begin
write('Vvedi kolichestvo elementov ');
readln(N);
write('Vvedi elementi spiska ');
new(p); {выделяем ячейку памяти для нового элемента и устанавливаем на нее указатель p}
read(p^.inf); {считываем с клавиатуры значение для этого элемента и заносим его в информационную часть}
l:=p; {устанавливаем ссылку l на ту же ячейку памяти, что и p }
for i:=1 to n-1 do {добавление в список оставшихся элементов}
begin
new(q);
read(q^.inf);
l^.next:=q; {связываем последний элемент списка с созданным элементом}
l:=q {переустанавливаем ссылку l на ячейку q}
end;
l^.next:=nil; {ссылочной части последнего элемента присваиваем пустую ссылку nil}
...


Здесь каждый элемент списка содержит информационную часть - число типа byte и ссылочную - ссылку на следующий элемент. Список определяется ссылкой на первый элемент p. Эту ссылку не стоит ни двигать, ни уничтожать, иначе вы потеряете доступ к списку.
Список - структура данных последовательного доступа, т.е. чтобы обратиться к какому-либо элементу списка, отличному от первого, мы должны последовательно пройти по ссылкам всех предыдущих элементов.

Пример: Вставить в список после указанного элемента заданное число.
type Ss=^elem;
elem=record
inf:byte;
next:ss
end;
var p,q,l:ss;
i,E,E1,N:byte;
begin
write('Vvedi kolichestvo elementov ');
readln(N);
write('Vvedi elementi spiska ');
new(p);
read(p^.inf);
l:=p;
for i:=1 to n-1 do
begin
new(q);
read(q^.inf);
l^.next:=q;
l:=q
end;
l^.next:=nil;
write('Vvedi element iz spiska i celoe chislo ');
readln(E,E1);
q:=p;
for i:=1 to N do
if q^.inf=E then
begin
new(l);
l^.inf:=E1;
l^.next:=q^.next;
q^.next:=l;
q:=l^.next
end
else q:=q^.next;
q:=p;
writeln('Poluchennii spisok:');
while q<>nil do
begin
write(q^.inf,' ');
q:=q^.next
end
end.