예제 #1
0
파일: Tree.cs 프로젝트: janstafa/BinaryTree
        public Node GetBrother(Node node)
        {
            if (node.Parent.Left == node)
            {
                return node.Parent.Right;
            }

            return node.Parent.Left;
        }
예제 #2
0
파일: Tree.cs 프로젝트: janstafa/BinaryTree
        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;
        }
예제 #3
0
파일: Tree.cs 프로젝트: janstafa/BinaryTree
 public Node GetRightChild(Node node)
 {
     return node.Right;
 }
예제 #4
0
파일: Tree.cs 프로젝트: janstafa/BinaryTree
 public Node GetParent(Node node)
 {
     return node.Parent;
 }
예제 #5
0
파일: Tree.cs 프로젝트: janstafa/BinaryTree
 public Node GetLeftChild(Node node)
 {
     return node.Left;
 }
예제 #6
0
파일: Tree.cs 프로젝트: janstafa/BinaryTree
        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)));
        }
예제 #7
0
파일: Tree.cs 프로젝트: janstafa/BinaryTree
        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;
        }
예제 #8
0
파일: Tree.cs 프로젝트: janstafa/BinaryTree
 public bool IsLeaf(Node node)
 {
     return node.Left == null & node.Right == null;
 }
예제 #9
0
파일: Tree.cs 프로젝트: janstafa/BinaryTree
        public void InsertRoot(Node node)
        {
            #region Defensive area

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

            #endregion

            Root = node;
        }