Esempio n. 1
0
        public static int Sum(IntTreeNode clientRoot)
        {
            if (clientRoot == null)
            {
                return(0);
            }

            return(clientRoot.data + Sum(clientRoot.left) + Sum(clientRoot.right));
        }
Esempio n. 2
0
        public static int Height(IntTreeNode clientRoot)
        {
            if (clientRoot == null)
            {
                return(0);
            }

            return(1 + Math.Max(Height(clientRoot.left), Height(clientRoot.right)));
        }
Esempio n. 3
0
        public static string ToStringInOrder(IntTreeNode clientRoot)
        {
            string str = "";

            if (clientRoot != null)
            {
                str += ToStringInOrder(clientRoot.left) + " " + clientRoot.data + " " + ToStringInOrder(clientRoot.right) + " ";
            }
            return(str);
        }
Esempio n. 4
0
 public static bool ExistsST(IntTreeNode clientRoot, int value)
 {
     if (clientRoot == null)
     {
         return(false);
     }
     if (clientRoot.data == value)
     {
         return(true);
     }
     return(Exists(clientRoot.left, value) || Exists(clientRoot.right, value));
 }
Esempio n. 5
0
        private IntTreeNode Add(IntTreeNode root, int value)
        {
            if (root == null)
            {
                root = new IntTreeNode(value);
            }

            else if (value <= root.data)
            {
                root.left = Add(root.left, value);
            }

            else
            {
                root.right = Add(root.right, value);
            }

            return(root);
        }
Esempio n. 6
0
 // Instance Methods
 public void Add(int value)
 {
     root = Add(root, value);
 }
Esempio n. 7
0
 // Constructor
 public IntSearchTree()
 {
     root = null;
 }
Esempio n. 8
0
 public IntTreeNode(int data, IntTreeNode left, IntTreeNode right)
 {
     this.data  = data;
     this.left  = left;
     this.right = right;
 }