Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> построить двоичное дерево, динамические структуры данных, деревья 
:(
    Опции темы
GOSHA_KOF
Дата 8.12.2006, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 8.12.2006

Репутация: нет
Всего: нет



В файле N целых чисел в двоичной системе счисления (M бит каждое). Построить двоичное дерево, в котором числам соответствуют листья дерева, а путь по дереву определяет значение информационного поля этого листа.

Нужно решить эту задачу.

Не понятно то как организовать пути по веткам(как показано в примере)??????????

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  ______.JPG 7,79 Kb
PM MAIL   Вверх
TaNK
Дата 8.12.2006, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



Цитата(GOSHA_KOF @ 8.12.2006,  23:00)
В файле N целых чисел в двоичной системе счисления (M бит каждое). Построить двоичное дерево, в котором числам соответствуют листья дерева, а путь по дереву определяет значение информационного поля этого листа.

Нужно решить эту задачу.

Не понятно то как организовать пути по веткам(как показано в примере)??????????

я сильно подзабыл работу с деревьями...но могу привести парочку примеров, в универе когда стряпал 
Код

{Тема: Двоичные деревья.
 Описать function, которая подсчитывает число вершин на N-ом уровне непустого
 дерева. (корень вершина 0-го уровня)}

program trees;
type
     Tree_ptr=^Tree;
     Tree=record
                info : integer;
                nur : integer;
                L,R : tree_ptr;
          end;

var
     T : tree_ptr;
     N : integer;
     p,q : tree_ptr;
     kol,c,u,i,y : integer;

function KolVerUrN(T : tree_ptr; N : integer):integer;
var
     s : integer;

procedure obhod(T : tree_ptr; N : integer);
begin
     if T<>nil then
     begin
          if T^.nur=N then s:=s+1;
          obhod(T^.L,N);
          obhod(T^.R,N);
     end;
end;
begin
     s:=0;
     obhod(T,N);
     KolVerUrN:=s;
end;

begin
     write('Vvedite kolichestvo elementov dereva kol=');
     readln(kol);

     writeln('Vvedite elementy dereva dvoichnogo poiska :');
     readln(c);
     new(T);
     with T^ do
     begin
          info:=c;
          nur:=0;
          L:=nil;
          R:=nil;
     end;

     readln(c);
     for i:=2 to kol do
     begin
          p:=T;
          u:=0;
          while p<>nil do
          begin
               q:=p;
               if c<p^.info then
               begin
                    p:=p^.L;
                    u:=u+1;
               end
                            else
               begin
                    p:=p^.R;
                    u:=u+1;
               end;
          end;

          new(p);
          with p^ do
          begin
               info:=c;
               nur:=u;
               L:=nil;
               R:=nil;
          end;

          if c<q^.info then q^.L:=p
                       else q^.R:=p;

          if i<>kol then readln(c);
     end;

     write('Vvedite nomer urovnya N=');
     readln(N);

     y:=KolVerUrN(T,N);
     write('Kolichestvo vershin ',N,'-m urovne ravno ',y);
     readln;
end.

может поможет



--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
GOSHA_KOF
Дата 12.12.2006, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 8.12.2006

Репутация: нет
Всего: нет



спасибо, но я уже решил!

Если нужно, то могудать решение.
PM MAIL   Вверх
TaNK
Дата 12.12.2006, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



Цитата(GOSHA_KOF @ 12.12.2006,  20:40)
спасибо, но я уже решил!

Если нужно, то могудать решение.

выложи конечно, может кому в будущем понадобиться!


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0597 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.