TOPIC
15% wrong answer em java ListaDuplamenteEncadeada
ffernandes51 asked 3 years ago
import java.util.Scanner; public class Main { private static class Lista { public String S; public Lista prox; public Lista ant; public Lista(String S) { this.S = S; this.prox = null; this.ant = null;
}
}
public static class ListaDuplamenteEncadeadaNao {
private Lista primeiro;
private Lista ultimo;
private Lista aux;
public ListaDuplamenteEncadeadaNao() {
primeiro = null;
ultimo = null;
aux = null;
}
public void adicionarInicio(String S) {
Lista novo = new Lista(S);
if (primeiro == null) {
primeiro = novo;
ultimo = novo;
novo.prox = null;
novo.ant = null;
} else {
novo.prox = primeiro;
primeiro.ant = novo;
novo.ant = null;
primeiro = novo;
}
}
public void adicionarFinal(String S) {
if(Buscar(S)==false){
Lista novo = new Lista(S);
if (primeiro == null) {
primeiro = novo;
ultimo = novo;
novo.prox = null;
novo.ant = null;
} else {
ultimo.prox = novo;
novo.ant = ultimo;
novo.prox = null;
ultimo = novo;
}
}
}
public boolean Buscar(String S) {
Lista atual = primeiro;
while (atual != null) {
if (primeiro == null) {
} else {
aux = ultimo;
if (aux.prox == aux.ant ) {
return true;
}
atual = atual.prox;
}
}
return false;
}
public void totalFaltam() {
int cont = 0;
int result = 0;
Lista atual = primeiro;
while (atual != null) {
if (atual != atual.prox) {
cont++;
}
atual = atual.prox;
}
result = 151 - cont;
System.out.printf("Falta(m) %d pomekom(s).\n", result);
}
}
public static void main(String[] args) {
ListaDuplamenteEncadeadaNao pomekom = new ListaDuplamenteEncadeadaNao();
Scanner valores = new Scanner(System.in);
int N = valores.nextInt();
String S;
for (int i = 1; i <= N; i++) {
System.out.print("");
S = valores.next();
if (pomekom.Buscar(S) == false) {
pomekom.adicionarFinal(S);
}
}
pomekom.totalFaltam();
}
}
This topic has not been answered yet. Be the first!