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: 1164 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): ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
// 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;
}
// método que permite obter o campo próximo deste nó
getProximo(){
return this.proximo;
}
// retorna true se este nó apontar para outro nó
possuiProximo(){
return this.proximo != null;
}
}
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): ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
// 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)
exibir(){
// aponta para o início da lista
var noAtual = this.inicio;
// enquanto o nó não for nulo
while(noAtual != null){
// exibe o conteúdo do nó atual
document.writeln(noAtual.getInfo() + "<br>");
// pula para o próximo nó
noAtual = noAtual.getProximo();
}
}
}
E agora a página HTML (com uma função JavaScript) que testa a lista encadeada simples: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
<!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);
lista.inserirInicio(71);
lista.inserirInicio(98);
lista.inserirInicio(4);
lista.inserirInicio(830);
lista.inserirInicio(59);
// exibe todo o conteúdo da lista ligada
lista.exibir();
}
</script>
</body>
</html>
</script>
</body>
</html>
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 |
|
Java - Como retornar a hora atual em Java usando um objeto da classe Calendar - Datas e Horas em Java |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







