У меня есть два дерева, как эти: Как вставить дерево в другое дерево в C#
Я хочу, чтобы вставить второе дерево в первое дерево в узле, который имеет такое же имя его корень и прикрепить дочерние элементы этого узла слева - большинство дочерних элементов второго дерева.
Я пробовал:
PTree attachPoint = chain.Find(x => x.Val == RTree.Val);
if (attachPoint != null)
{
foreach (var c in attachPoint.Childs)
{
RTree.Left.Childs.Add(c);
}
attachPoint = RTree;
}
else
{
RTree.Left.Childs.Add(root);
root = RTree;
}
Здесь RTree
это второе дерево и root
указывает на корень первого дерева и chain
держит ветвь от корня «А» до «D». Но кажется, что желаемое дерево не построено. Я сделал это правильно?
Каково максимальное количество дочерних узлов узла? Это не похоже на двоичное дерево, но узел содержит «Left»-child-node. Выглядит странно. –
@Verarind вы можете предположить, что «RTree», второй ребенок, является двоичным, а 'Left' фактически является childs [1], а' Right' - 'childs [0]' – Ahmad