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