Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2010, 15:49   #1
DmuS
Пользователь
 
Регистрация: 14.11.2009
Сообщений: 12
По умолчанию delphi, деревья

Необходимо удалить все листья дерева. Написал процедуру, но при просмотре структуры дерева или его обходе после ее выполнения программа выдает ошибку
Код:
procedure preorder(t:PNode);
 var q:PNode;
begin
  if t<>nil then
    begin
      if (t^.left=nil) and (t^.right=nil) then
        begin
          q:=t;
          dispose(q);
          exit;
        end;
      preorder(t^.left);
      preorder(t^.right);
    end;
end;
Подскажите пожалуйста в чем ошибка?
DmuS вне форума Ответить с цитированием
Старый 26.05.2010, 20:57   #2
sabbathist
Пользователь
 
Регистрация: 23.07.2009
Сообщений: 66
По умолчанию

у вас в какой-то момент времени рекурсия заходит в нулевой элемент.
O(n)
sabbathist вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Деревья в Delphi Алексей777911 Помощь студентам 1 26.05.2010 21:09
Деревья, Delphi. Катерина_Ио Фриланс 2 16.05.2009 04:38
3 задачи на деревья.(Delphi) Nazerbaev Фриланс 4 28.04.2009 00:39
Бинарные деревья в Delphi Ира08 Помощь студентам 3 04.04.2009 17:20