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


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


      if (current^.node_type='c') and not (current^.down=nil)

      then current_root:= current;

      end;

end;

procedure up;

{Навигация в дереве каталогов. Перемещение на один уровень вверх}

begin

current:=current_root;

if not (current^.up=nil) then current_root:=current^.up;

end;

procedure count;

{Расчет числа файлов и подкаталогов иерархической структуры каталога}

var

        n_files, n_cats :integer;

procedure count_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

                              n_files:=n_files+1

                  else

                  begin

                              n_cats:=n_cats+1;

                              count_in (local_node)

                 end;

                 local_node:=local_node^.next




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



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