Uma lista ligada é uma coleção de nós (ou registros) em que cada um aponta (referencia) o próximo.
As operações que geralmente são executadas sobre uma lista ligada são inserção, remoção e busca. São as operações de dicionário.
Listas ligadas tem comprimento variável.
Sua tarefa é entender os métodos que inserem, removem e buscam.
Aqui está o código fonte:
https://drive.google.com/file/d/0B2aucTjhMlIVQWV6MDFLUHEwV2c/view?usp=sharing
Segue a listagem:
01 package Lista;
02 class No {
03 protected String chave, conteudo;
04 protected No prox;
05 No () {
06 chave=null;
07 conteudo=null;
08 }
09 No (String chave, String conteudo) {
10 this.chave= new String (chave);
11 this.conteudo= new String (conteudo);
12 }
13 String getChave () {
14 return new String (chave);
15 }
16 String getConteudo () {
17 return new String (conteudo);
18 }
19 No getProx () {
20 return prox;
21 }
22 void setChave (String chave) {
23 this.chave=new String (chave);
24 }
25 void setConteudo (String conteudo) {
26 this.conteudo=new String (conteudo);
27 }
28 void setProx (No prox) {
29 this.prox=prox;
30 }
31 }
|
Java2html
|
01 package Lista;
02 public class Lista {
03 protected No inicio;
04 public Lista () {
05 inicio=null;
06 }
07 public void insereNoInicio (String chave, String conteudo) {
08 No novoInicio=new No (chave, conteudo);
09 novoInicio.setProx (inicio);
10 inicio=novoInicio;
11 }
12 public void insereNoFinal (String chave, String conteudo) {
13 No aux=inicio;
14 if (aux==null) {
15 inicio=new No (chave, conteudo);
16 } else {
17 while (aux.getProx()!=null)
18 aux=aux.getProx();
19 aux.setProx (new No (chave, conteudo));
20 }
21 }
22 public String busca (String chave) {
23 // retorna o conteúdo
24 No aux=inicio;
25 while ((aux!=null) && (!chave.equals(aux.getChave())))
26 aux=aux.getProx();
27 if (aux!=null) return aux.getConteudo();
28 return null;
29 }
30 public boolean remove (String chave) {
31 No aux=inicio;
32 if (aux==null) {
33 //throw EmptyListException();
34 System.out.println ("Erro: tentou remover de lista vazia");
35 } else {
36 if (chave.equals(aux.getChave())) {
37 // eh o primeiro que tem que ser removido.
38 inicio=inicio.getProx();
39 return true;
40 }
41 while ((aux.getProx()!=null) && (!chave.equals(aux.getProx().getChave())))
42 aux=aux.getProx();
43 if (aux.getProx()!=null) {
44 aux.setProx(aux.getProx().getProx());
45 return true;
46 }
47 }
48 return false;
49 }
50 public boolean isEmpty () {
51 return inicio==null;
52 }
53 public void imprime () {
54 No aux=inicio;
55 if (isEmpty()) {
56 System.out.println ("Lista Vazia");
57 } else {
58 System.out.println ("{");
59 while (aux!=null) {
60 System.out.println (" {" + aux.getChave() + "," + aux.getConteudo () + "}");
61 aux=aux.getProx();
62 }
63 System.out.println ("}");
64 }
65 }
66 }
67
68 /*
69 class EmptyListException () {
70 }
71 */
|
Java2html
|
Nenhum comentário:
Postar um comentário