layla-ventilari / github-blog

https://github-blog-livid.vercel.app
0 stars 0 forks source link

Lista Encadeada Recursiva em JavaScript 🔄 #17

Open layla-ventilari opened 1 year ago

layla-ventilari commented 1 year ago

Neste artigo, vamos explorar como implementar uma lista encadeada recursiva do zero em JavaScript. Uma lista encadeada é uma estrutura de dados que consiste em nós que estão interconectados por meio de referências. Vamos ver como criar uma lista encadeada usando a abordagem recursiva. 🌟

🔍 Estrutura Básica da Lista Encadeada 🤔

Antes de mergulharmos na implementação recursiva, vamos entender a estrutura básica de uma lista encadeada. Cada nó em uma lista encadeada contém um valor e uma referência para o próximo nó. O último nó da lista terá uma referência nula, indicando o final da lista.

💻 Implementação Recursiva da Lista Encadeada 💻

Vamos começar criando uma classe para representar um nó na lista encadeada:

class No {
    constructor(valor) {
        this.valor = valor;
        this.proximo = null;
    }
}

Agora, vamos criar a classe principal da lista encadeada, que terá os métodos de inserção e impressão dos elementos:

class ListaEncadeada {
    constructor() {
        this.cabeca = null;
    }

    inserir(valor) {
        if (this.cabeca === null) {
            this.cabeca = new No(valor);
        } else {
            this._inserirRecursivo(valor, this.cabeca);
        }
    }

    _inserirRecursivo(valor, noAtual) {
        if (noAtual.proximo === null) {
            noAtual.proximo = new No(valor);
        } else {
            this._inserirRecursivo(valor, noAtual.proximo);
        }
    }

    imprimir() {
        if (this.cabeca === null) {
            console.log("A lista está vazia.");
        } else {
            this._imprimirRecursivo(this.cabeca);
        }
    }

    _imprimirRecursivo(noAtual) {
        console.log(noAtual.valor);
        if (noAtual.proximo !== null) {
            this._imprimirRecursivo(noAtual.proximo);
        }
    }
}

🔧 Utilizando a Lista Encadeada Recursiva 🔧

Agora, podemos utilizar a nossa lista encadeada recursiva da seguinte forma:

const lista = new ListaEncadeada();
lista.inserir(10);
lista.inserir(20);
lista.inserir(30);
lista.imprimir();

A saída será:

10
20
30

🌟 Conclusão 🌟

A implementação de uma lista encadeada recursiva nos permite criar uma estrutura de dados flexível e eficiente. Ao entender os conceitos por trás das listas encadeadas e como implementá-las de forma recursiva em JavaScript, você estará preparado para utilizar essa estrutura em seus projetos. Continue praticando e explorando as possibilidades das listas encadeadas para aprimorar suas habilidades em estruturas de dados recursivas.