BinarySearchTreeAngka.java

public class BinarySearchTreeAngka {
   
    NodeAngka root;
       
        public BinarySearchTreeAngka(){
       
            root = null;
            }
       
        public void insert (int key){
       
            root = insertRec (root, key);
        }
       
        private NodeAngka insertRec(NodeAngka root, int key){
       
        if(root == null){
           
            root = new NodeAngka(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;
        }
       
        public void PrintPreOrder(NodeAngka node){
       
            if (node == null)
               
                return ;
           
            System.out.print(node.key+" ");
            PrintPreOrder(node.left);
            PrintPreOrder(node.right);
        }
       
        public void PrintInOrder(NodeAngka node){
       
            if (node==null)
                return;
           
            PrintPreOrder(node.left);
            System.out.print(node.key+" ");
            PrintPreOrder(node.right);
        }
       
        public void PrintPostOrder(NodeAngka node){
       
            if(node==null)
                return;
            PrintPreOrder(node.left);
            PrintPreOrder(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(int key){
         root = deleteRec(root,key);
     }
  
     public NodeAngka deleteRec(NodeAngka root, int 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;
     }
  
    int minValue(NodeAngka root){
        int minv = root.key;
        while (root.left != null)
        {
            minv = root.left.key;
            root = root.left;
        }
        return minv;
    }
}

Komentar

Postingan populer dari blog ini

BinarySearchTreeString.java