Exemple #1
0
        private void SplitNode()
        {
            ChooseTwoNewReplacementNodes(out Node <T> newNode1, out Node <T> newNode2);

            PartitionThisNodesChildrenToNewNodes(newNode1, newNode2);

            if (IsRoot)
            {
                CreateNewRootNode(newNode1, newNode2);
            }


            Parent.Children.Remove(this);
            Parent.AddChildToNode(newNode1, Tree.GetDistance(Parent.Item, newNode1.Item));
            Parent.AddChildToNode(newNode2, Tree.GetDistance(Parent.Item, newNode2.Item));
        }