Помощь - Поиск - Пользователи - Календарь
Полная версия: сортировка списка простыми вставками
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
toto
помогите пожалуйста с задачей про сортировку списка с помощью рекурсии unsure.gif
volvo
type
plist=^node;
node=record
data: integer;
next:plist;
end;
function insert_sort(l: plist): plist;

function insert(a: plist; l: plist): plist;
begin
a^.next := nil;
if l = nil then insert := a
else
if a^.data < l^.data then begin
a^.next := l; insert := a;
end
else begin
l^.next := insert(a, l^.next);
insert := l;
end;
end;

begin
if l = nil then insert_sort := nil
else insert_sort := insert(l, insert_sort(l^.next));
end;


Вызывать так:
Var first: plist;
...
{ Заполнение списка }
first := insert_sort(first);
...
toto
большое спасибо, все прекрасно работает, разобралась good.gif
-LOVE133-
понадобилась такая же процедура... понятно все, кроме последней строчки


begin

if l = nil then insert_sort := nil

else insert_sort := insert(l, insert_sort(l^.next));

end;

объясните, пожалуйста, как это будет работать.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.