Omówimy sobie strukturę danych zwaną listą wiązaną (linked list) w języku JavaScript. Do dzieła.
Cóż, własną implementację napiszemy sobie w PHP kilka lekcji później. Tym razem omówimy krok po kroku kod z kursu, za który ktoś wziął (w tym wypadku moje) pieniądze.
Nauczymy się w ten sposób więcej. Zobaczymy mocne i słabe strony kodu, poprawimy czytelność i ewidentne błędy skutkujące pętlą nieskończoną (ale co ja tam wiem…)
Zaczynamy od podstaw – klasa Node:
class Node{
constructor(val){
this.val = val;
this.next = null;
}
}
Wartość to liczba, next to inny obiekt klasy Node. Teraz klasa listy wiązanej:
class SinglyLinkedList{
constructor(){
this.head = null;
this.tail = null;
this.length = 0;
}
}
Head i tail to będą obiekty node, length reprezentuje długość listy.
Metody, jakie dodamy:
- pop czyli usuń z końca listy
- push, czyli dodaj na koniec listy
- shift czyli usuń z początku listy
- unshift czyli dodaj na początek listy
- get czyli weź element o określonym indeksie
- set czyli element o określonym indeksie (w zasadzie o określonej kolejności, listy wiązane nie mają indeksów) ustaw na inną wartość
- remove – usuń n-ty element listy
- insert czyli wstaw element w n-tą pozycję
- własny symbol iterator, który sobie napiszemy do iteracji po liście
Metoda push już w następnej lekcji!