コード例 #1
0
 static int FindMaxNumberWithRecusion(BstNode node)
 {
     if (node.Rigth == null)
     {
         return(node.Data);
     }
     return(FindMaxNumberWithRecusion(node.Rigth));
 }
コード例 #2
0
 static int FindMinNumberWithRecusion(BstNode node)
 {
     if (node.left == null)
     {
         return(node.Data);
     }
     return(FindMinNumberWithRecusion(node.left));
 }
コード例 #3
0
        static int FindHeight(BstNode node)
        {
            if (node == null)
            {
                return(-1);
            }

            return(Maximum(FindHeight(node.left), FindHeight(node.Rigth)) + 1);
        }
コード例 #4
0
        static BstNode CreateNode(int data)
        {
            BstNode node = new BstNode()
            {
                Data  = data,
                left  = null,
                Rigth = null
            };

            return(node);
        }
コード例 #5
0
 //Without Recursion
 static int FindMaxNumber(BstNode node)
 {
     if (node == null)
     {
         return(-1);
     }
     while (node.Rigth != null)
     {
         node = node.Rigth;
     }
     return(node.Data);
 }
コード例 #6
0
 //without Recursion
 static int FindMinNumber(BstNode node)
 {
     if (node == null)
     {
         return(-1);
     }
     while (node.left != null)
     {
         node = node.left;
     }
     return(node.Data);
 }
コード例 #7
0
 static BstNode Insert(BstNode node, int data)
 {
     //code for first node
     if (node == null)
     {
         node = CreateNode(data);
     }
     //Move item to the left
     else if (data <= node.Data)
     {
         node.left = Insert(node.left, data);
     }
     //move item to the right
     else
     {
         node.Rigth = Insert(node.Rigth, data);
     }
     return(node);
 }
コード例 #8
0
        static string Search(BstNode node, int data)
        {
            string result = "NOT FOUND";

            if (node == null)
            {
                return(result);
            }
            else if (data == node.Data)
            {
                result = "FOUND";
            }
            else if (data < node.Data)
            {
                result = Search(node.left, data);
            }
            else
            {
                result = Search(node.Rigth, data);
            }

            return(result);
        }
コード例 #9
0
        static void Main(string[] args)
        {
            BstNode root = null;

            root = Insert(root, 5);
            root = Insert(root, 2);
            root = Insert(root, 3);
            root = Insert(root, 1);
            root = Insert(root, 6);
            root = Insert(root, 10);
            root = Insert(root, 4);
            root = Insert(root, 11);
            root = Insert(root, 9);

            Console.WriteLine(Search(root, 10));
            Console.WriteLine($"Minimum number with Recurrsion is { FindMinNumberWithRecusion(root) }");
            Console.WriteLine($"Maximum number with Recurrsion is { FindMaxNumberWithRecusion(root) }");
            Console.WriteLine($"Minimum number is { FindMinNumber(root) }");
            Console.WriteLine($"Maximum number is { FindMaxNumber(root) }");
            Console.WriteLine($"height of tree is {FindHeight(root)}");

            Console.Read();
        }