public static void InsertBST(this Tree tree, int value) { if (SearchBST(tree, value) != null) { throw new ArgumentException("Вузол з таким значенням уже існує"); } var node = new Node() { Value = value }; Node pNode = tree.ParentNode; Node previous = null; while (pNode != null) { previous = pNode; if (pNode.Value > value) { pNode = pNode.LeftNode; } else { pNode = pNode.RightNode; } } pNode = node; if (previous.Value > value) { previous.AddLeftNode(pNode); } else { previous.AddRightNode(pNode); } }