Created
April 15, 2018 20:37
-
-
Save lricoy/2cc4a1bb50e26247ede41d56a4a3b9cc to your computer and use it in GitHub Desktop.
Exemplo de lista encadeadas para grupo de estudos
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Nodo { | |
public data: number; // Valor que o elemento contem | |
public proximo: Nodo; // referencia para o próximo item da lista | |
constructor(data, proximo?) { | |
this.data = data; | |
this.proximo = proximo; | |
} | |
} | |
var primeiro = new Nodo(1, new Nodo(2, new Nodo(3, null))) // [1] -> [2] -> [3] -> null | |
var novoPrimeiro = new Nodo(-1, primeiro); // [-1] -> [1] -> [2] -> [3] -> null | |
var auxiliar = novoPrimeiro; | |
while (auxiliar != null) { | |
console.log(auxiliar.data); | |
auxiliar = auxiliar.proximo; | |
} | |
class Lista { | |
public primeiro: Nodo; | |
public ultimo: Nodo; | |
constructor(primeiro?: Nodo) { | |
this.primeiro = null; | |
if (primeiro) { | |
this.primeiro = primeiro; | |
} | |
} | |
adicionarNoFinal (valor: number) { | |
if (this.primeiro == null) { | |
this.adicionarNoPrincipio(valor); | |
return; | |
} | |
var aux = new Nodo(valor); | |
this.ultimo.proximo = aux; | |
this.ultimo = aux; | |
} | |
adicionarNoPrincipio (valor: number) { | |
if (this.primeiro == null) { | |
var aux = new Nodo(valor); | |
this.primeiro = aux; | |
this.ultimo = aux; | |
return; | |
} | |
this.primeiro = new Nodo(valor, this.primeiro); | |
} | |
} | |
var lista1 = new Lista(new Nodo(1)); // [1] -> null | |
var lista2 = new Lista(new Nodo(2)); // [2] -> null | |
console.log(lista1.primeiro.data); // 1 | |
console.log(lista2.primeiro.data); // 2 | |
var lista3 = new Lista(); | |
lista3.adicionarNoFinal(5); // [5] -> null | |
lista3.adicionarNoFinal(6); // [5] -> [6] -> null | |
lista3.adicionarNoFinal(7); // [5] -> [6] -> [7] -> null | |
console.log(lista3.primeiro.data); // 5 | |
console.log(lista3.primeiro.proximo.data); // 6 | |
lista3.adicionarNoFinal(1); // [5] -> [6] -> [7] -> [1] -> null | |
console.log(lista3.primeiro.proximo.proximo.data); // 7 | |
console.log(lista3.primeiro.proximo.proximo.proximo.data); // 1 | |
var lista4 = new Lista(); | |
lista4.adicionarNoPrincipio(10); // [10] -> null | |
console.log(lista4.primeiro.data);// 10 | |
lista4.adicionarNoPrincipio(11); // [11] -> [10] -> null | |
console.log(lista4.primeiro.data) // 11 | |
console.log(lista4.primeiro.proximo.data) //10 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment