Exemple #1
0
        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);
            }
        }