Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 6

CLASSE 1:

public class No {
protected double valor;
protected No proximo, anterior;

public double getValor(){


return valor;
}
public void setValor(double valor){
this.valor = valor;
}
public No getProximo() {
return proximo;
}
public void setProximo(No proximo) {
this.proximo = proximo;
}
public No getAnterior() {
return anterior;
}
public void setAnterior(No anterior) {
this.anterior = anterior;
}

public No (double valor){


this.valor = valor;
this.proximo = null;
this.anterior = null;
}
}

CLASSE 2:

public class Lista {


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);
}
}

Você também pode gostar