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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2007, 00:13   #1
ribka
 
Аватар для ribka
 
Регистрация: 30.11.2007
Сообщений: 6
Вопрос обход дерева

Дерево задано 1 массивом. Обход сверху-вниз. Можно ли писать алгоритм таким образом? ("это всё очень притянуто за уши"). Дело в том, что я знаю по каким формулам вычислять соседей вершин, но не знаю как это реализовать в виде цикла. Может у кого было что-то похожее? Вот код. Кое-что я потом объединю, чтобы код не был таким объёмным, а в общем хочу слышать дельные предложения (для этого выкладываю хоть какой-то результат работы:
Код:
 i:=1;
     for k:=1 to 2 do
      begin
        L:=2*k+2*(i-1);
        if (MasDerevo[L]<>'0') and (L<=15) then
        LB2.Items.Add(MasDerevo[L]);
      end;
      L:=2*2*2+2*(i-1);
      if (MasDerevo[L]<>'0') and (L<=15) then
        LB2.Items.Add(MasDerevo[L]);
      R:=2*2*2+2*(i-1)+1;
      if (MasDerevo[R]<>'0') and (L<=15) then
        LB2.Items.Add(MasDerevo[R]);
      //inc(i);   i=1
      R:=2*2+2*(i-1)+1;
      if (MasDerevo[R]<>'0') and (L<=15) then
        LB2.Items.Add(MasDerevo[R]);
      i:=3; //i=3
      L:=2*2+2*(i-1);
      if (MasDerevo[L]<>'0') and (L<=15) then
        LB2.Items.Add(MasDerevo[L]);
      inc(i);  
      R:=2*2+2*(i-1)+1;
      if (MasDerevo[R]<>'0') and (R<=15) then
        LB2.Items.Add(MasDerevo[R]);

Последний раз редактировалось AlDelta; 11.12.2007 в 01:57.
ribka вне форума Ответить с цитированием
Старый 11.12.2007, 20:35   #2
alll_23
Пользователь
 
Регистрация: 22.10.2007
Сообщений: 12
По умолчанию

Не охота смотреть в ваш код могу только сказать что циклом это не делается нужно пользоваться рекурсией.
alll_23 вне форума Ответить с цитированием
Старый 11.12.2007, 20:38   #3
alll_23
Пользователь
 
Регистрация: 22.10.2007
Сообщений: 12
По умолчанию

И из чего вы вычисляете соседние вершины непонятно, дерево
можно задать тавлицей вида(id, parentid, text)
alll_23 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прорисовка дерева yulia Общие вопросы по Java, Java SE, Kotlin 3 02.11.2008 23:19
Глубина дерева Иллидан Паскаль, Turbo Pascal, PascalABC.NET 1 29.03.2008 11:36
обход сервера-сниффера joker Win Api 14 26.10.2007 17:28
создание бинарного дерева zetrix Паскаль, Turbo Pascal, PascalABC.NET 2 30.11.2006 19:32