Ejemplo n.º 1
0
        public Node GetBrother(Node node)
        {
            if (node.Parent.Left == node)
            {
                return node.Parent.Right;
            }

            return node.Parent.Left;
        }
Ejemplo n.º 2
0
        public void InsertLeftLeave(Node parent, Node node)
        {
            #region Defensive area

            if (parent == null)
            {
                throw new ArgumentNullException("parent", "Parent node can't be null.");
            }

            if (node == null)
            {
                throw new ArgumentNullException("node", "Inserted node can't be null.");
            }

            #endregion

            parent.Left = node;
        }
Ejemplo n.º 3
0
 public Node GetRightChild(Node node)
 {
     return node.Right;
 }
Ejemplo n.º 4
0
 public Node GetParent(Node node)
 {
     return node.Parent;
 }
Ejemplo n.º 5
0
 public Node GetLeftChild(Node node)
 {
     return node.Left;
 }
Ejemplo n.º 6
0
        private int NodeCount(Node node)
        {
            if (node == null)
            {
                return 0;
            }

            if (node.Left == null && node.Right == null)
            {
                return 1;
            }

            return (1 + (NodeCount(node.Left) + NodeCount(node.Right)));
        }
Ejemplo n.º 7
0
        public Node RemoveRightLeaf(Node node)
        {
            if (!IsLeaf(node.Right))
            {
                throw new InvalidOperationException("Removed node is not leaf and can't be removed.");
            }

            node.Right = null;
            return node;
        }
Ejemplo n.º 8
0
 public bool IsLeaf(Node node)
 {
     return node.Left == null & node.Right == null;
 }
Ejemplo n.º 9
0
        public void InsertRoot(Node node)
        {
            #region Defensive area

            if (node == null)
            {
                throw new ArgumentNullException("node", "Inserted node can't be null.");
            }

            #endregion

            Root = node;
        }