Ola galera estou tentando terminar um sistema aqui usando arvore binaria e lista duplamente encadeada circular mas no meu menu esta com um erro nao sei prq, sera que alguem pode me ajudar.
Class Principal
package substitutiva;
import java.util.Scanner;
public class Principal {
public static void main(String args[]) {
Scanner leitor = new Scanner(System.in);
Pessoa pessoa = new Pessoa(); //ref1
MetodosArvore arv = new MetodosArvore(); //ref
MetodosLista list = new MetodosLista(); //ref2
pessoa = new Pessoa();
int opcao = 0;
while (opcao <= 0 || opcao > 0) {
System.out.println("Qual Operacao Executar:");
System.out.println("1 - Inserir na Lista:");
System.out.println("2 - Remover da Lista:");
System.out.println("3 - Imprimir Lista:");
System.out.println("4 - Pesquisar:");
System.out.println("5 - Remover da Arvore:");
System.out.println("6 - Imprimir Arvore:");
System.out.println("7 - Sair:");
opcao = leitor.nextInt();
switch (opcao) {
case 1: {
System.out.println("Digite o nome: ");
leitor.nextLine();
arv.insere(leitor.nextLine());
list.inserirLista(leitor.nextLine());
break;
}
case 2: {
System.out.println("Digite o nome que deseja remover: ");
leitor.nextLine();
list.removerLista(leitor.nextLine());
System.out.println();
break;
}
case 3: {
}
case 4: {
}
case 5: {
}
case 6: {
}
case7:
{
}
default: {
System.out.println("Operacao Inexistente!");
System.out.println();
break;
}
}
}
}
}
Metodo da Arvore
public void insere(Pessoa p) {
No novo = new No();
novo.p = p;
raiz = inserir(novo, raiz);
}
public No inserir(No novo, No inicio) {
if (inicio != null) {
if (novo.p.getNome().compareTo(inicio.p.getNome()) < 0) {
inicio.esq = inserir(novo, inicio.esq);
} else {
inicio.dir = inserir(novo, inicio.dir);
}
return inicio;
} else {
return novo;
}
}
Metodo da Lista
public void inserirLista(Pessoa p) {
No novo = new No();
novo.p = p;
if (prim == null) {
prim = novo;
prim.prox = prim;
prim.ant = prim;
} else if (novo.p.getNome().compareTo(prim.p.getNome()) < 0) {
novo.prox = prim;
novo.ant = prim.ant;
prim.ant.prox = novo;
prim.ant = novo;
prim = novo;
} else {
No aux = new No();
aux = prim;
boolean achou = false;
do {
if (novo.p.getNome().compareTo(aux.p.getNome()) < 0 && achou == false) {
novo.prox = aux;
novo.ant = aux.ant;
aux.ant.prox = novo;
aux.ant = novo;
achou = true;
} else if (aux.prox == prim) {
if (novo.p.getNome().compareTo(aux.p.getNome()) > 0) {
novo.prox = aux.prox;
novo.ant = aux;
prim.ant = novo;
aux.prox = novo;
}
}
aux = aux.prox;
} while (aux != prim);
}
}
se alguem puder me ajudar agradeço.