protected No primeiro; public No getPrimeiro(){ return primeiro; } public void setPrimeiro(No primeiro){ this.primeiro = primeiro; }
public Lista (){
this.primeiro = null; } public void inserirInicio (No novoNo){ if (primeiro == null){ primeiro = novoNo; } else{ primeiro.setAnterior(novoNo); novoNo.setProximo(primeiro); primeiro = novoNo; } System.out.println("\nElemento ADICIONADO!"); } public void inserirFinal (No novoNo){ if (primeiro == null){ primeiro = novoNo; } else{ No temp = primeiro; while(temp.getProximo() != null){ temp = temp.getProximo(); } temp.setProximo(novoNo); } System.out.println("\nElemento ADICIONADO!"); } public void removerInicio(){ if(primeiro == null){ System.out.println("A lista já está vazia!"); } else{ primeiro = primeiro.getProximo(); System.out.println("\nElemento REMOVIDO!"); } } public void removerFinal (){ if(primeiro == null){ System.out.println("A lista já está vazia!"); } else{ No temp = primeiro; while(temp.getProximo() != null){ temp = temp.getProximo(); } temp.getAnterior().setProximo(null); temp.setAnterior(null); System.out.println("\nElemento REMOVIDO!"); } } public void mostrarLista (){ System.out.println("\nLista:"); No temp = primeiro; while (temp != null){ System.out.println(temp.getValor()); temp = temp.getProximo(); } } public boolean verificarElemento(double valor){ boolean existe = false; No temp = primeiro; while(temp != null){ if (temp.getValor() == valor){ existe = true; } temp = temp.getProximo(); } return existe; } public void retornarPosicao (double valor){ int cont = 0; No temp = primeiro; while(temp != null){ cont++; if (temp.getValor() == valor){ System.out.println("Posição: " + cont); } temp = temp.getProximo(); } } }
CLASSE 3:
public class ValorInexistenteException extends Exception {
public ValorInexistenteException (String msg){ super(msg); } }
CLASSE 4:
public class Teste {
public static void main(String[] args) throws ValorInexistenteException{ Scanner sc = new Scanner (System.in); boolean pros = true, ok = false; int op = 0; double valor; Lista l = new Lista(); while (pros){ ok = false; while (!ok){ try{ System.out.println("\nDigite:" + "\n1 - para Adicionar na primeira posição;" + "\n2 - para Adicionar na última posição;" + "\n3 - para exibir a lista;" + "\n4 - para verificar se um elemento existe;" + "\n5 - para retornar a posição de um determinado elemento;" + "\n6 - para remover o primeiro;" + "\n7 - para remover o último; " + "\n0 - para encerrar o programa."); op = sc.nextInt(); sc.nextLine(); ok = true; } catch(InputMismatchException A){ System.out.println("Você digitou algo inválido :("); sc.nextLine(); } } switch(op) { case 1: l.inserirInicio(insercao()); break; case 2: l.inserirFinal(insercao()); break; case 3: l.mostrarLista(); break; case 4: boolean ok2 = false; while (!ok2){ try{ System.out.println("\nDigite um valor:"); valor = sc.nextDouble(); sc.nextLine(); if(l.verificarElemento(valor)){ System.out.println("O elemento EXISTE."); } else{ System.out.println("O elemento NÃO existe."); } ok2 = true; } catch(InputMismatchException A){ System.out.println("Você digitou algo inválido :("); sc.nextLine(); } } break; case 5: boolean ok3 = false; while (!ok3){ try{ System.out.println("\nDigite um valor:"); valor = sc.nextDouble(); sc.nextLine(); if(l.verificarElemento(valor) != true){ throw new ValorInexistenteException("Não posso checar a posição digitada porque este elento não existe."); } else{ l.retornarPosicao(valor); } ok3 = true; } catch(InputMismatchException A){ System.out.println("Você digitou algo inválido :("); sc.nextLine(); } catch (ValorInexistenteException VIE){ System.out.println(VIE.getMessage()); } } break; case 6: l.removerInicio(); break; case 7: l.removerFinal(); break; case 0: System.exit(0); break; } } } public static No insercao(){ Scanner sc = new Scanner (System.in); boolean ok = false; double valor = 0; while(!ok){ try{ System.out.println("\nDigite um valor:"); valor = sc.nextDouble(); sc.nextLine(); ok = true; } catch(InputMismatchException A){ System.out.println("Você digitou algo inválido :("); sc.nextLine(); } } return new No(valor); } }