Junior — Middle
Como avaliar a complexidade algorítmica da operação de atualização de um elemento numa lista ligada?
sobes.tech IA
Resposta da IA
A atualização de um elemento numa lista ligada geralmente requer primeiro encontrar esse elemento e depois alterar o seu valor.
- Se tiver um ponteiro ou referência para o nó necessário, a atualização do valor é uma operação O(1).
- Se precisar primeiro encontrar o elemento por índice ou valor, a busca leva O(n), onde n é o número de elementos na lista.
Exemplo em 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; // atualização O(1)
}
}
No total, a complexidade geral de atualizar um elemento por índice é O(n), se não houver acesso direto ao nó.