Lista ligada com cauda - verificar se elemento existe na lista


Curso de estrutura de dados e algoritmos em Java


Aprenda a verificar se um elemento existe em uma lista ligada com cauda (tail)


Verificar se um valor está presente em uma lista ligada com cauda (tail) é um processo bastante simples.

Ele consiste em percorrer a lista a partir de seu nó inicial utilizando um laço do tipo while, e verificando se o valor é o mesmo de algum dos nós da lista.

Caso o valor seja igual, retornamos true, e ao fim do processamento caso o valor não esteja presente, retornamos false.

Veja a seguir primeiramente a classe da lista ligada, e na sequência implementaremos o método para verificar se o valor está presente na lista.

public class ListaLigadaCauda<T> {

    private Node<T> inicio;
    private Node<T> fim;
    private int tamanho;

    public ListaLigadaCauda() {
        inicio = null;
        fim = null;
        tamanho = 0;
    }

    public int getTamanho() {
        return tamanho;
    }

    public Node getInicio() {
        return inicio;
    }

    public Node getFim() {
        return fim;
    }

}

Com a classe da lista ligada com cauda definida, vamos implementar o método para vericar a existencia do valor nela, conforme o código a seguir:

public boolean valorPresente(T valor) {
    // obtém a referência do nó inicial
    Node<T> node = inicio;
    // percorre a lista a partir do nó inicial até seu final (proximo == null)
    while (node != null) {
        // caso o valor procurado seja o mesmo do nó corrente,
        // retorna true
        if (node.getValor() == valor) {
            return true;
        }
        // move para o próximo nó
        node = node.getProximo();
    }

    // retorna false pois o valor não está presente
    return false;
}

Com o código da verificação implementado, veja como a classe da lista ligada com cauda fica com o método adicionada a ele, conforme o código a seguir:

public class ListaLigadaCauda<T> {

    private Node<T> inicio;
    private Node<T> fim;
    private int tamanho;

    public ListaLigadaCauda() {
        inicio = null;
        fim = null;
        tamanho = 0;
    }

    public int getTamanho() {
        return tamanho;
    }

    public Node getInicio() {
        return inicio;
    }

    public Node getFim() {
        return fim;
    }

    public boolean valorPresente(T valor) {
        Node<T> node = inicio;
        while (node != null) {
            if (node.getValor() == valor) {
                return true;
            }
            node = node.getProximo();
        }

        return false;
    }

}

Com isso terminamos a implementação do método para verificar se um valor existe na lista ligada com cauda, que é o mesmo da lista ligada uma vez que não temos a necessidade de fazer o uso do nó extra fim para isso.


Artigos recentes: