Junior — Middle
Hogyan értékeljük a láncolt lista elemének frissítési műveletének algoritmikus összetettségét?
sobes.tech MI
Válasz az MI-től
Egy elem frissítése egy összekapcsolt listában általában először megköveteli, hogy megtalálja ezt az elemet, majd megváltoztassa az értékét.
- Ha van mutató vagy hivatkozás a szükséges csomópontra, az érték frissítése O(1) művelet.
- Ha először meg kell találni az elemet index vagy érték szerint, a keresés O(n), ahol n a lista elemeinek száma.
Példa Dart (Flutter):
class Node {
int value;
Node? next;
Node(this.value);
}
void updateNodeValue(Node head, int index, int newValue) {
Node? current = head;
int i = 0;
while (current != null && i < index) {
current = current.next;
i++;
}
if (current != null) {
current.value = newValue; // O(1) frissítés
}
}
Összességében, az index szerint történő elemfrissítés összetettsége — O(n), ha nincs közvetlen hozzáférés a csomóponthoz.