Sobes.tech
Junior — Middle

Kuidas pääseda elementidele indeksi järgi ühesuunalises loendis ja massiivis?

sobes.tech AI

Vastus AI-lt

Indeksiga juurdepääs elementidele massiivis on väga kiire ja lihtne — saab otse pöörduda soovitud elemendi poole, kasutades süntaksit $array[$index]. See on võimalik, kuna massiivid hoiavad elemente pidevas mälualal.

Üksikühenduslistis ei ole otsest juurdepääsu indeksi järgi, kuna elemendid on ühendatud näitajate kaudu. Et saada element kindla indeksiga, tuleb listist alustada algusest, liikudes ühest sõlmest teise, kuni jõuate soovitud indeksini:

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

Seega, indeksi järgi juurdepääs üheküljelisel ühendatud listil on keerukusega O(n), samas kui massiivis — O(1).