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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2014, 18:51   #1
shadezx
Пользователь
 
Регистрация: 24.10.2013
Сообщений: 75
По умолчанию Бинарные деревья поиска(Паскаль)

Нужно подсчитать количество листьев(терминальных элементов) в дереве
вот функция но выдает слишком большое число
Код:

function count(root:pnode):integer;
var Cnt,cL,cR:integer;
begin
if (root=nil)then begin
  count:=0;
  end;
  if  (root^.Left = nil) and (root^.Right = nil)
  then  Inc(Cnt);
  Cnt:=Cnt+count(root^.Left);
  Cnt:=Cnt+count(root^.Right);
  count:=Cnt;
подскажите как исправить ошибку?
shadezx вне форума Ответить с цитированием
Старый 25.11.2014, 19:37   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

так, в порядке предположения (не проверял!!):

Код:
function count(root:pnode):integer;
var cnt : integer;
begin
  cnt := 0;
  if (root=nil) then begin
    count:=0;
  end
  else begin
     if  (root^.Left = nil) and (root^.Right = nil)
        then  Inc(cnt);
     cnt := cnt + count(root^.Left);
     cnt := cnt + count(root^.Right);
     count:=Cnt;
  end;
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.11.2014, 19:58   #3
shadezx
Пользователь
 
Регистрация: 24.10.2013
Сообщений: 75
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
так, в порядке предположения (не проверял!!):

Код:
function count(root:pnode):integer;
var cnt : integer;
begin
  cnt := 0;
  if (root=nil) then begin
    count:=0;
  end
  else begin
     if  (root^.Left = nil) and (root^.Right = nil)
        then  Inc(cnt);
     cnt := cnt + count(root^.Left);
     cnt := cnt + count(root^.Right);
     count:=Cnt;
  end;
end;
благодарю,вот что значит забыл обнулить переменную вначале)
shadezx вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бинарные Деревья Паскаль mishammm Помощь студентам 13 07.05.2014 21:18
Бинарные деревья поиска nyzam7 Общие вопросы Delphi 0 13.05.2012 01:55
С++ бинарные деревья vadiprog Помощь студентам 4 02.05.2012 14:52
бинарные деревья поиска DmuS Помощь студентам 0 27.05.2010 14:33