BinarySearchTreeNama.java

public class BinarySearchTreeNama{
       
            NodeNama root;
       
        public BinarySearchTreeNama(){
       
            root = null;
            }
       
        public void insert (char key){
       
            root = insertRec (root, key);
        }
       
        private NodeNama insertRec(NodeNama root, char key){
       
        if(root == null){
           
            root = new NodeNama(key);
           
            return root;
        }
       
         if (key<root.key){
            
             root.left = insertRec(root.left, key);
            
         }
        
         else if (key>root.key){
            
             root.right = insertRec(root.right, key);
         }
        
            return root;
           
        }
//Preoreder class
        public void PrintPreOrder(NodeNama node){
       
            if (node == null)
                return ;
           
            System.out.print(" "+node.key + " ");
            PrintPreOrder(node.left);
            PrintPreOrder(node.right);
           
        }
       
//InOrder Class
        public void PrintInOrder(NodeNama node){
       
            if (node==null)
                return;
           
            PrintInOrder(node.left);
            System.out.print(" "+node.key + " ");
            PrintInOrder(node.right);
        }
 
//PostOrder Class
        public void PrintPostOrder(NodeNama node){
       
            if(node==null)
                return;
            PrintPostOrder(node.left);
            PrintPostOrder(node.right);
            System.out.print(" "+ node.key +" ");
        }
       
        public void PrintPreOrder(){
       
            PrintPreOrder(root);
        }
       
        public void PrintInOrder(){
       
            PrintInOrder(root);
         }
       
        public void PrintPostOrder(){
           
            PrintPostOrder(root);
        }
       
        public void deleteKey(char key){
         root = deleteRec(root,key);
     }
  
     public NodeNama deleteRec(NodeNama root, char key){
         if(root == null ) return root;
      
         if(key<root.key){
             root.left = deleteRec(root.left, key);
         }
         else if(key>root.key){
             root.right = deleteRec(root.right, key);
         }
         else {

             if (root.left == null) {
                 return root.right;
             } else if (root.right == null) {
                 return root.left;
             }

             root.key = minValue(root.right);
             root.right = deleteRec(root.right, root.key);
         }
      
         return root;
     }
  
    char minValue(NodeNama root){
        char minv = root.key;
        while (root.left != null)
        {
            minv = root.left.key;
            root = root.left;
        }
        return minv;
    }
   
   
    private int counting(NodeNama node){
       
        if (node == null){
            return 0;
        }
        else {
        return 1 + counting (node.left)+ counting(node.right);
        }
    }
   
    public int Size(){
        return counting (root);
    }
}

Komentar

Postingan populer dari blog ini

BinarySearchTreeAngka.java

BinarySearchTreeString.java