2013/03/18

Java - Capitulo 12: Exemplo lista ligada

new Comment();

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;
    }
}







If You Enjoyed This, Take 5 Seconds To Share It

0 comentarios:

Postar um comentário