Sobes.tech
Junior — Middle

Jak uzyskać dostęp do elementów według indeksu na liście jednokierunkowej i w tablicy?

sobes.tech AI

Odpowiedź od AI

Dostęp do elementów według indeksu w tablicy jest bardzo szybki i prosty — można od razu odwołać się do żądanego elementu, używając składni $array[$index]. Jest to możliwe, ponieważ tablice przechowują elementy w ciągłym obszarze pamięci.

W jednokierunkowej liście powiązanej nie ma bezpośredniego dostępu po indeksie, ponieważ elementy są połączone wskaźnikami. Aby uzyskać element o określonym indeksie, trzeba przejść przez listę od początku, przechodząc od jednego węzła do drugiego, aż dojdziemy do żądanego indeksu:

function getElementAt($head, $index) {
    $current = $head;
    $count = 0;
    while ($current !== null) {
        if ($count === $index) {
            return $current->value;
        }
        $current = $current->next;
        $count++;
    }
    return null; // indeks poza zakresem
}

W ten sposób dostęp po indeksie w jednokierunkowej liście ma złożoność O(n), podczas gdy w tablicy — O(1).