Журнал Системный Администратор, Декабрь 2007

Журнал Системный Администратор

Декабрь 2007

Цена: $4.5 US

  Подписаться

Зарегистриванные пользователи, пожалуйста следуйте этой ссылке


Основные процедуры для работы с деревьями

Александр Ямпольский

Иерархические структуры доминируют в мире. Систем, построенных на основе бескомпромиссного иерархического подхода, немного, так как такой подход выглядит труднореализуемым. Однако его применение повысит вероятность того, что ваша система в конце концов не окажется в тупике.

Статья содержит реализации основных («штатных») процедур для работы с деревьями, включая реализацию алгоритма эвристического поиска. Я попытался продемонстрировать преимущества алгоритма обхода «в ширину» при работе с большими деревьями.

Отличительной особенностью алгоритма является то, что он не использует инструментов, создающих неопределенность с точки зрения требований к памяти, таких как рекурсия, очереди и т. п.

Основные процедуры для работы с деревьями

В системах обработки информации иерархические объекты моделируются деревьями. Схема на рис. 1 демонстрирует связи между объектами, формирующими ветвь дерева.

Рисунок 1. Схема ветви дерева

На языке C# эта схема может быть реализована с помощью следующей структуры:

public struct ObjectN   // объект (узел дерева)

   {

   public string J_NAME;       // имя объекта

 public long J_TYPE;  // тип объекта(носитель знаний)

   public long IDF,     // указатель на «отца»

               IDB,     // указатель на «брата»

               ID1C;    // указатель на первого потомка

   }

Оставшая часть статьи доступна только подписчикам. Если вы желаете продолжить чтение этой статьи, то вам необходимо подписаться на эту статью или весь номер.

Подписаться на весь номер

Зарегистриванные пользователи, пожалуйста следуйте по этой ссылке