Você está aqui: JavaScript ::: Estruturas de Dados ::: Lista Ligada Simples |
Como inserir um nó no início de uma lista singularmente ligada em JavaScriptQuantidade de visualizações: 1058 vezes |
Nesta dica eu mostrarei, em detalhes, como podemos inserir nós no início de uma lista ligada simples (singly linked list) em JavaScript. Note que mostrarei também a classe No usada para o exemplo, assim como o método exibir() que permitirá imprimir todos os nós na lista encadeada simples e seus valores correspondentes. Em mais dicas desta seção você aprenderá como implementar os demais métodos. Vamos começar então com o código para a classe No da lista singularmente ligada (que salvei em um arquivo no_lista_singularmente_ligada.js): // classe No para uma lista singularmente encadeada ou // ligada - Singly Linked List class No{ // construtor da classe No constructor(info, proximo){ this.info = info; this.proximo = proximo; } // método que permite definir o conteúdo do nó setInfo(info){ this.info = info; } // método que permite obter a informação de um nó getInfo(){ return this.info; } // método que permite definir o campo próximo deste nó setProximo(proximo){ this.proximo = proximo; Veja que o código para a classe Nó não possui muitas firulas. Temos apenas um campo info, que guardará o valor do nó, e um campo próximo, que aponta para o próximo nó da lista, ou null, se este for o único nó ou o último nó da lista ligada. Veja agora o código para a classe ListaLigadaSimples (lista_ligada_simples.js): // classe ListaLigadaSimples class ListaLigadaSimples{ // construtor da classe constructor(){ this.inicio = null // nó inicial da lista } // método que permite inserir um novo nó no início da lista inserirInicio(info){ // cria um novo nó contendo a informação e que // não aponta para nenhum outro nó var novoNo = new No(info, null); // a lista ainda está vazia? if(this.inicio == null){ // o novo nó será o início da lista this.inicio = novoNo; } else{ // o novo nó aponta para o início da lista novoNo.setProximo(this.inicio); // o novo nó passa a ser o início da lista this.inicio = novoNo; } } // método que permite exibir todos os nós da lista // ligada simples (lista singularmente encadeada) E agora a página HTML (com uma função JavaScript) que testa a lista encadeada simples: <!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Estruturas de Dados em JavaScript</title> <!-- importa as classes No e ListaLigadaSimples //--> <script src="no_lista_singularmente_ligada.js?hora=435545423"> </script> <script src="lista_ligada_simples.js?hora=435545423"> </script> </head> <body onLoad="contruirListaLigada()"> <script type="text/javascript"> function contruirListaLigada(){ // cria uma nova lista encadeada simples var lista = new ListaLigadaSimples(); // insere vários valores, sempre no início da lista lista.inserirInicio(30); Ao abrir esta página no seu navegador você o seguinte resultado: 59 830 4 98 71 30 Você deve estar se perguntando o porquê de colocar "?hora=435545423" junto com o nome do arquivo .js a ser importado. Isso nos ajuda a evitar o cache do arquivo .js por parte do navegador. Dessa forma, todas as vezes que você fizer alterações nos arquivos que contem a classe Nó e a classe Lista, você só precisa alterar esse número e o navegador esquecerá o cache e carregará a nova versão. Observe também que coloquei a função que testa a lista ligada no evento onLoad() da página. Isso é necessário para dar tempo ao navegador de carregar os dois arquivos .js completamente. Pense no desastre que seria iniciar a execução dos métodos da lista sem que a classe Nó estivesse disponível. |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de JavaScript |
Veja mais Dicas e truques de JavaScript |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |