Você está na página 1de 4

package ArvoreBST;

import java.util.Scanner;

import static java.lang.System.out;

public class BSTTest {

private final static Scanner SCANNER = new Scanner(System.in);

public static void main(String[] args) {

final BST arvore = new BST();

int opcao = 0;

do {

menu();

final String entrada = SCANNER.next();

if(!verificaNumero(entrada)) {

out.println("Apenas números!");

continue;

opcao = Integer.parseInt(entrada);

switch (opcao) {

case 1:

out.println("Insira o valor a ser inserido: ");

final String valor = SCANNER.next();

if(verificaNumero(valor)) {

arvore.insert(Integer.parseInt(valor));

}else {

out.println("Número inválido!");

}
break;

case 2:

out.println("Insira o valor procurado: ");

final String valorProcurado = SCANNER.next();

if(verificaNumero(valorProcurado)) {

final boolean existe =


arvore.search(Integer.parseInt(valorProcurado)) != null;

out.println("O elemento: " + valorProcurado + ( existe ?


"" : " não ") + " está na lista!" );

}else {

out.println("Número inválido!");

break;

case 3:

out.println("a)Em Ordem\tb)Pré-Ordem\tc)Pós-Ordem");

final String ordem = SCANNER.next();

if (ordem.equalsIgnoreCase("a")){

arvore.inorder();

}else if (ordem.equalsIgnoreCase("b")) {

arvore.preorder();;

}else if ( ordem.equalsIgnoreCase("c")) {

arvore.postorder();

}else {

out.println("Apenas a, b ou c!");

break;

case 4:

out.println("Total de nodos folha: " + arvore.countLeafNode());

break;

case 5:

out.println("Altura: " + arvore.getHeight());


break;

case 6:

out.println("Total de nodos : " + arvore.countNodes());

break;

case 7:

out.println("A árvore está cheia? " + ( arvore.isFull() ? "Sim." :


"Não."));

break;

case 8:

out.println("Encerrando...");

break;

default:

out.println("Opção inválida!");

} while(opcao != 8);

private static void menu() {

//\n\ta)Em ordem\n\tb)Pré-Ordem\n\tc)Pós-Ordem

out.println("1 - Inserir valor: ");

out.println("2 - Buscar valor: ");

out.println("3 - Percurso: ");

out.println("4 - Número de nodos folha: ");

out.println("5 - Altura: ");

out.println("6 - Número total de nodos: ");

out.println("7 - Verificar se a árvore está cheia");

out.println("8 - Sair");

}
private static boolean verificaNumero(final String valor) {

return valor.matches("^-{0,1}\\d+$");

Você também pode gostar