Супер, сделал по пунктам, получилось вот что:
Код:
while not eof do
begin
t:= nil;
read(x); // получаем число
if b = nil then // смотрим есть ли элементы в очереди
inkol(b,e,nil,x) // если нет то добавляем
else
while q<> B do // если есть ищем максимальное (t указатель на максимальное)
begin
if q^.d > t^.d then
t := q;
q:=q^.ri;
end;
inkol(b,e,t,x); // вводим за максимальным
end;
всё, теперь сортирует без ошибок.. Но почемуто при вводе кольца, например:
1 2 3 4 5 6 7 8 9
выдает
9 8 7 6 5 4 3 2 1 1
тоесть добавляется лишняя единица. Ведь поидее while not eof уже должен был не проходить еще раз внутреннее тело, а он прошел и опять проработал inkol.