Структуры и алгоритмы обработки данных


Применение сильноветвящихся деревьев - часть 5


         until local_node=nil

         end

end;

begin {Собственно процедура}

n_files:=0; n_cats:=0;

count_in (current_root);

writeln ('файлы : ',n_files, ' каталоги: ', n_cats);

end;

procedure count_mem;

{Расчет физического объема иерархической структуры каталога}

var

        mem :longint;

procedure count_m_in (local_root : pointer);

var

        local_node, local_r_node: ^node;

begin

local_r_node:=local_root;

if not (local_r_node^.down=nil) then

         begin

          local_node:=local_r_node^.down;

          repeat

                     if   local_node^.node_type='f' then

                               mem:=mem+local_node^.size

                     else

                                count_m_in (local_node);

         local_node:=local_node^.next

         until local_node=nil

         end

end;

begin  {Собственно процедура}

mem:=0;

count_m_in (current_root);

writeln ('mem ', mem, ' bytes');

end;

{----------основная программа----------}

begin

new(current);

{Инициализация корня дерева каталогов и указателей для навигации}

root:=current; current_root:=current;




Начало  Назад  Вперед



Книжный магазин