Организовать поиск и печать ветвей генеалогического древа с помощью обхода графа в «глубину» - C#
Формулировка задачи:
Генеалогическое дерево некоторого рода представлено графом не более 12 вершин. Узел каждой вершины графа дополнительно включает пол представителя рода. Организовать поиск и печать всех особ женского пола с помощью обхода графа в «глубину».
код в си шарп
Решение задачи: «Организовать поиск и печать ветвей генеалогического древа с помощью обхода графа в «глубину»»
textual
Листинг программы
class Tree
{
public string Pol = null; //w false - m
public string Name = null;
public Tree[] Next = null;
}
static void Search(Tree tree)
{
if (tree.Pol.ToUpper().Trim() == "W") Console.WriteLine(tree.Name);
if (tree.Next != null) foreach (var _ in tree.Next) Search(_);
}
static void Main(string[] args)
{
//init - до 12 вершин сам будешь инициализировать
Tree tree = new Tree
{
Pol = "W",
Name = "Olga",
Next = new[] {
new Tree{ Pol="M", Name="Jan", Next=null},
new Tree{ Pol="W",Name="Janna", Next=new[]{new Tree{ Pol="W",Name="Sandra", Next=new Tree[0]}}},
new Tree{ Pol="M", Name="Arnold",Next=new[]{
new Tree{ Pol="W",Name="Angela", Next=null},
new Tree{ Pol="W", Name="Pamela",Next=new[]{new Tree{ Pol="M", Name="Jim",Next=null}}}
}
}
}
};
Search(tree);