Sobes.tech
Junior — Middle

Жалгыз байланыштуу тизмеде жана массивде индекске ылайык элементтерге кандай жетүү керек?

sobes.tech AI

AIден жооп

Массивде индекс боюнча элементтерге кирүү өтө тез жана жөнөкөй — $array[$index] синтаксисин колдонуп, керектүү элементке дароо кайрылса болот. Бул мүмкүн, анткени массивдер элементтерди үзгүлтүксүз эс тутум аймагында сактайт.

Жалгыз байланышкан тизмеде индекс боюнча түздөн-түз кирүү жок, анткени элементтер көрсөтүүчүлөр аркылуу байланышкан. Белгилүү бир индекс менен элементти алуу үчүн, тизмени баштан баштап, бир түйүндөн экинчи түйүнгө өтүп, керектүү индекске жеткенче өтүү керек:

function getElementAt($head, $index) {
    $current = $head;
    $count = 0;
    while ($current !== null) {
        if ($count === $index) {
            return $current->value;
        }
        $current = $current->next;
        $count++;
    }
    return null; // индекс диапазондан тышкары
}

Ошентип, бирдиктүү байланышкан тизмеде индекс боюнча кирүү O(n) татаалдыгы бар, ал эми массивде — O(1).