Duvida Programar

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.

E qual seria o erro? :slight_smile:

Nas linhas 28, 29 do Metodo Principal


                    arv.insere(leitor.nextLine());
                    list.inserirLista(leitor.nextLine());

e tmb na linha 36

list.removerLista(leitor.nextLine());

Você me disse onde está o problema, mas você precisa dizer qual o problema.

Não compila? Nâo se comporta da maneira que você esperava? O que ocorre de estranho ao executar essas linhas? É lançada uma exceção? A saída não é a esperada?

O bom de definir bem essas informações ao abrir o tópico, é que boa parte do pessoal não tem tempo de compilar seu código e ver o que ocorre de errado, portanto as vezes podem vir ver esse seu tópico, e simplesmente ir embora por falta de informação, entende? :slight_smile:

Quando compilo e seleciono a opcao 1 aparece o seguinte erro

Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: substitutiva.MetodosArvore.insere
	at substitutiva.Principal.main(Principal.java:28)