Árvore binária em java
//INSERÇÃO NA ÁRVORE public Tree inserir(Tree aux, int valor){ if (aux == null) { aux = new Tree(valor); } else if (valor < aux.x) { aux.left = inserir(aux.left, valor); } else { aux.right = inserir(aux.right, valor); } return aux;
}
//IMPRIME EM ORDEM public void printinorder(Tree root){ if(root == null){ return; } printinorder(root.left); System.out.print(root.x + " "); printinorder(root.right); }
//IMPRIME EM BARRAS public void Printbar(Tree root, int bar){ if(root == null) return; for(int i = 0;i < bar ; i++){ System.out.print("-"); } System.out.println("-" + root.x); if(root.left != null){ Printbar(root.left, bar + 2); } if(root.right != null){ Printbar(root.right, bar + 2); } }
//ACHA O MENOR NUMERO public int encontraminimo(Tree root){ if(root != null){ while(root.left != null){ root = root.left; } } return root.x;
}
//ACHA O MAIOR NUMERO public int encontramaximo(Tree root){ if(root != null){ while(root.right != null){ root = root.right; } } return root.x; }
//EXISTE O NUMERO? public boolean search(Tree root, int value){ if(root == null) return false; else if(root.x == value) return true; else{ if(value > root.x) return search(root.right , value); else return search(root.left , value); }
}
//REMOVE QUALQUER NO DA ARVORE public Tree remover(Tree root, int value){ if(root == null) return null; else if(value < root.x) root.left = remover(root.left, value); else if(value > root.x) root.right = remover(root.right, value); else{ if(root.left == null && root.right == null){ root = null; } else if(root.left == null){ root = root.right; }else