domingo, 7 de junho de 2015

Lista ligada

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!=nullreturn 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