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):