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!