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

Рисунок 1. Схема ветви дерева
На языке C# эта схема может быть реализована с
помощью следующей структуры:
public struct ObjectN //
объект (узел дерева)
{
public string
J_NAME; // имя объекта
public long J_TYPE; // тип
объекта(носитель знаний)
public long IDF, //
указатель на «отца»
IDB, // указатель
на «брата»
ID1C; //
указатель на первого потомка
}