Помощь - Поиск - Пользователи - Календарь
Полная версия: сортировка списка простыми вставками
Форум «Всё о Паскале» > 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;

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