2013/03/08

Java - Lista ligada

new Comment();
Exemplo de uma lista ligada

Classe Lista
package lista_ligada;

public class Lista {
    private No primeiro;
    private No ultimo;
    
    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 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(){
        No n = this.primeiro;
        while(n != null){
            System.out.println("Nome: " + n.getPessoa().getNome());
            n = n.getProximo();
        }
    }
    
    public int tamanho(){
        int tam = 0;
        No n = this.primeiro;
        while(n != null){
            tam++;
            n = n.getProximo();
        }
        
        return tam;
    }
}

Classe Lista_Ligada
package lista_ligada;

import java.util.Scanner;

public class Lista_ligada {
    public static void main(String[] args) {
        Lista l = new Lista();
        Scanner entrada = new Scanner(System.in);
        Pessoa p;
        
        while(true){
            System.out.println("1 - Inserir no Início");
            System.out.println("2 - Inserir no Final");
            System.out.println("3 - Listar");
            System.out.println("4 - Tamanho");
            System.out.println("5 - Sair");
            System.out.print("Informe a opção desejada: ");
            int opcao = Integer.parseInt(entrada.nextLine());
            
            switch(opcao){
                case 1:
                    System.out.println("Informe o nome: ");
                    p = new Pessoa(entrada.nextLine());
                    l.inserirInicio(p);
                    break;
                case 2:
                    System.out.println("Informe o nome: ");
                    p = new Pessoa(entrada.nextLine());
                    l.inserirFinal(p);
                    break;
                case 3:
                    l.listar();
                    break;
                case 4:
                    System.out.println("Tamanho: " + l.tamanho());
                    break;    
                case 5:
                    System.exit(0);
                    break;
                default:
                    System.out.println("Opção inválida");
                    break;
            }
        }
    }
}

Classe No
package lista_ligada;

public class No {
    Pessoa pessoa;
    No proximo;

    public Pessoa getPessoa() {
        return pessoa;
    }

    public void setPessoa(Pessoa pessoa) {
        this.pessoa = pessoa;
    }

    public No getProximo() {
        return proximo;
    }

    public void setProximo(No proximo) {
        this.proximo = proximo;
    }
}

Classe pessoa
package lista_ligada;

public class Pessoa {
    private String nome;

    public String getNome() {
        return nome;
    }

    public Pessoa(String nome) {
        this.nome = nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }
}

If You Enjoyed This, Take 5 Seconds To Share It

0 comentarios:

Postar um comentário