Пример #1
0
        public void Insert(int value)
        {
            if (value <= Data)
            {
                if (Left != null)
                {
                    Left.Insert(value);
                }
                else
                {
                    Left = new RandomNodeBST(value);
                }
            }
            else
            {
                if (Right != null)
                {
                    Right.Insert(value);
                }
                else
                {
                    Right = new RandomNodeBST(value);
                }
            }

            updateSize();
        }
Пример #2
0
 public void Insert(int value)
 {
     if (Root == null)
     {
         Root = new RandomNodeBST(value);
     }
     else
     {
         Root.Insert(value);
     }
 }
Пример #3
0
        public bool Remove(int value)
        {
            if (Root == null)
            {
                return(false);
            }

            if (Root.Data == value)
            {
                Root = null;
                return(true);
            }
            else
            {
                return(Root.RemoveChild(value));
            }
        }
Пример #4
0
        public bool RemoveChild(int value)
        {
            bool result = false;

            if (value < Data)
            {
                if (Left != null)
                {
                    if (Left.Data == value)
                    {
                        Left   = null;
                        result = true;
                    }
                    else
                    {
                        result = Left.RemoveChild(value);
                    }
                }
                else
                {
                    result = false;
                }
            }
            else
            {
                if (Right != null)
                {
                    if (Right.Data == value)
                    {
                        Right  = null;
                        result = true;
                    }
                    else
                    {
                        result = Right.RemoveChild(value);
                    }
                }
                else
                {
                    result = false;
                }
            }

            updateSize();
            return(result);
        }