Capitulo 12: Exemplo lista ligada
Lista_ligada: Menu do programa
package ListaOsmar; import javax.swing.JOptionPane; import ListaLigada.lista_ligada; public class Lista_ligada { public static void main(String[] args){ Lista l = new Lista(); Pessoa p; while(true){ int opcao = Integer.parseInt(JOptionPane.showInputDialog(null, "1. Inserir no inicio\n"+ "2. Inserir no final\n"+ "3. Listar\n"+ "4. Tamanho\n"+ "5. Eliminar ultimo\n"+ "6. Eliminar primeiro\n"+ "7. Sair\n\n"+ "Informe a opção desejada")); switch(opcao){ case 1: p = new Pessoa(JOptionPane.showInputDialog("Informe o nome a ser inserido no inicio: ")); l.inserirInicio(p); break; case 2: p = new Pessoa(JOptionPane.showInputDialog("Informe o nome a ser inserido no final: ")); l.inserirFinal(p); break; case 3: l.listar(); break; case 4: JOptionPane.showMessageDialog(null, "Tamanho: " + l.tamanho()); break; case 5: l.removerFinal(); break; case 6: l.removerInicio(); break; case 7: System.exit(0); break; default: JOptionPane.showMessageDialog(null, "Opção inválida"); break; } } } }
Lista: Classe com as funções
package ListaOsmar; import javax.swing.JOptionPane; //Criamos a class Lista public class Lista { private No primeiro; private No ultimo; String resultado = ""; public void inserirFinal(Pessoa p){ No n = new No(); n.setPessoa(p); n.setProximo(null); if(this.isVazia()){ this.primeiro = n; this.ultimo = n; } else{ this.ultimo.setProximo(n); this.ultimo = n; } } public void eliminarFinal(){ } public void inserirInicio(Pessoa p){ No n = new No(); n.setPessoa(p); if(this.isVazia()){ n.setProximo(null); this.primeiro = n; this.ultimo = n; } else{ n.setProximo(primeiro); primeiro = n; } } public boolean isVazia(){ if(this.primeiro == null){ return true; } else{ return false; } } public void listar(){ resultado = ""; No n = this.primeiro; while(n != null){ resultado += "Nome: " + n.getPessoa().getNome()+"\n"; n = n.getProximo(); } JOptionPane.showMessageDialog(null, resultado); } public int tamanho(){ int tam = 0; No n = this.primeiro; while(n != null){ tam++; n = n.getProximo(); } return tam; } public No removerInicio(){ No removido = null; if(isVazia()){ JOptionPane.showMessageDialog(null, "Lista vazia"); } else{ removido = primeiro; if(primeiro.equals(ultimo)){ primeiro = null; ultimo = null; } else{ primeiro = primeiro.getProximo(); } } return removido; } public No removerFinal(){ No removido = null; if (isVazia()){ JOptionPane.showMessageDialog(null, "Lista vazia"); } else{ removido = ultimo; if(primeiro.equals(ultimo)){ primeiro = null; ultimo = null; } else{ No n = primeiro; while (n.getProximo() != ultimo){ n = n.getProximo(); } ultimo = n; n = n.getProximo(); } } return removido; } }
Pessoa: Estrutura de uma pessoa
package ListaOsmar; public class Pessoa { //Criamos uma variável privada do tipo string private String nome; //Criamos o getter do nome para poder obter o nome desde outra class public String getNome() { return nome; } //Criamos o método constructor passando como parametro nome public Pessoa(String nome) { this.nome = nome; } }
No: Responsável de ligar a listas
package ListaOsmar; public class No { //Criamos uma pessoa do tipo Pessoa Pessoa pessoa; //Criamos variável proximo do tipo No No proximo; //Criamos o getter de pessoa que vai retornar a pessoa (objeto) public Pessoa getPessoa() { return pessoa; } //Criamos o setter de pessoa pasando como parametro pessoa public void setPessoa(Pessoa pessoa) { this.pessoa = pessoa; } //Criamos getter de proximo que vai retornar o proximo public No getProximo() { return proximo; } //criamos o setter proximo passando como parametro proximo public void setProximo(No proximo) { this.proximo = proximo; } }
0 comentarios:
Postar um comentário