Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ сортировка списка простыми вставками

Автор: toto 18.12.2005 6:34

помогите пожалуйста с задачей про сортировку списка с помощью рекурсии unsure.gif

Автор: volvo 18.12.2005 13:07

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 19.12.2005 2:46

большое спасибо, все прекрасно работает, разобралась good.gif

Автор: -LOVE133- 13.04.2006 19:00

понадобилась такая же процедура... понятно все, кроме последней строчки


begin

if l = nil then insert_sort := nil

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

end;

объясните, пожалуйста, как это будет работать.