Я стажер и имею проблему с этим, я не могу решить эту проблему самостоятельно. Пожалуйста, помогите мне. Я нашел много тем, но не нашел решения. Я только начинаю изучать C#, и я не уверен, как это сделать. Я знаю, что это простая работа, но я действительно должен ее понять и решить. Я пытаюсь что-то сделать, но это всего лишь код. Я сделал свое двоичное дерево с некоторыми значениями, имел класс узла и метод печати.
Скажите, пожалуйста, как написать код, который может читать дерево из Консоли, потому что я не хочу иметь hardcorde. И тогда, как найти самого низкого общего предка - я вижу алгоритмы BFS и DFS, поэтому, может быть, я могу что-то найти, но я не уверен.
Я много читал об этом, но я не могу объяснить многое. Ее Вот мой код:Самый низкий общий предк в двоичном дереве, прочитайте ввод и алгоритм
class Program
{
static void Main(string[] args)
{
var binatyTree = new BinaryTree<int>(1,
new BinaryTree<int>(2,
new BinaryTree<int>(4),
new BinaryTree<int>(5)),
new BinaryTree<int>(3,
new BinaryTree<int>(6,
new BinaryTree<int>(9),
new BinaryTree<int>(10)),
new BinaryTree<int>(7))
);
Console.WriteLine("Binary Tree:");
binatyTree.Print();
}
}
мой бинарное дерево и печать метод:
public class BinaryTree<T>
{
public T Value { get; set; }
public BinaryTree<T> LeftChildren { get; set; }
public BinaryTree<T> RightChildren { get; set; }
public BinaryTree(T value, BinaryTree<T> leftChildren = null, BinaryTree<T> rightChildren = null)
{
this.Value = value;
this.LeftChildren = leftChildren;
this.RightChildren = rightChildren;
}
public void Print (int indent = 0)
{
Console.Write(new string (' ', 2*indent));
Console.WriteLine(this.Value);
if (this.LeftChildren != null)
{
this.LeftChildren.Print(indent + 1);
}
if (this.RightChildren != null)
{
this.RightChildren.Print(indent + 1);
}
}
мой класс Node:
class Node
{
private int data;
private Node left;
private Node right;
public Node(int data = 0)
{
this.data = 0;
left = null;
right = null;
}
}
Поэтому, пожалуйста, мне действительно нужно понять каждые соединения, так пожалуйста, если вы можете объяснить мне и помочь.
Пожалуйста, разделите вопрос. Они не связаны – Dolev
Самый низкий общий предок трудно найти. Каково ожидаемое время выполнения? – Dolev