tenho que criar um programa que organiza strings(a,b,c) em ordem alfabética com lista encadeada em java, que siga as condições abaixo.
receber os elementos e colocá-lo na ordem correta;
retirar os itens repetidos;
fazer a busca de um item e dizer quantos “saltos” foram necessários pra chegar neste desde o head;
mais estou com dificuldades para entender lista encadeada
Ajudamos com dúvidas e problemas referentes a códigos. Não fazemos suas atividades.
Se quer aprender oque é, pesquisa, no youtube tem muita vídeo-aula sobre isso.
Depois tente fazer, e quando tiver com problemas no código poste aqui.
T+
Assista todos os vídeos que tenham referência a collections:
VIDEO
Ao ordenar seus elementos e remover os repetidos, você terá a lista da forma encadeada.
vou colocar o código que fiz logo abaixo.
classe node
public class Node {
private Node proximo;
private Object informacao;
public Node(Node proximo, Object informacao){
this.proximo = proximo;
this.informacao = informacao;
}
public Node(Object informacao){
this.informacao = informacao;
}
public Node getProximo() {
return proximo;
}
public void setProximo(Node proximo) {
this.proximo = proximo;
}
public Object getInformacao() {
return informacao;
}
public void setInformacao(Object informacao) {
this.informacao = informacao;
}
}
classe lista encadeada
public class ListaEncadeada {
private Node cabeca;
boolean verifica = false;
public void adicionaUltimo(String informacao) {
Node newNode = new Node(null, informacao);
if (cabeca == null) {
cabeca = newNode;
} else {
Node atual = cabeca;
while (atual.getProximo() != null) {
atual = atual.getProximo();
}
atual.setProximo(newNode);
}
}
public boolean contem(String informacao) {
Node node = new Node(null, informacao);
while (node != null) {
if (node.getInformacao().equals(informacao)) {
return true;
}
node = node.getProximo();
}
return false;
}
public String toString() {
if (this.cabeca == null) {
return "[]";
}
StringBuilder builder = new StringBuilder("[");
Node atual = cabeca;
// Percorrendo até o penúltimo elemento.
while (atual != null) {
builder.append(atual.getInformacao());
if (atual.getProximo() != null)
builder.append(", ");
atual = atual.getProximo();
}
// ultimo elemento
builder.append("]");
return builder.toString();
}
}
void main
import java.util.Arrays;
public class Teste {
public static void main(String[] args) {
ListaEncadeada lista = new ListaEncadeada();
String vetor[] = new String[10];
vetor[0] = "a";
vetor[1] = "b";
vetor[2] = "a";
vetor[3] = "g";
vetor[4] = "d";
vetor[5] = "e";
vetor[6] = "f";
vetor[7] = "g";
vetor[8] = "c";
vetor[9] = "h";
Arrays.sort(vetor);
for (int i = 0; i < vetor.length; i++) {
if (lista.contem(vetor[i]) != true) {
System.out.println(vetor[i]);
} else {
lista.adicionaUltimo(vetor[i]);
}
}
System.out.println(lista);
//System.out.println(lista.verifica);
}
}