Sobes.tech
Junior — Middle

Quelle est la complexité temporelle de l'opération d'ajout d'un élément à la fin d'une liste chaînée?

sobes.tech IA

Réponse de l'IA

La complexité temporelle de l'opération d'ajout d'un élément à la fin d'une liste chaînée dépend de la présence d'un pointeur vers le dernier élément.

  • S'il y a un pointeur vers la queue (tail), l'ajout se fait en O(1), car on peut ajouter immédiatement un nouvel élément après la queue.
  • S'il n'y a pas de pointeur vers la queue, il faut parcourir toute la liste pour trouver le dernier élément, et la complexité sera alors O(n), où n est le nombre d'éléments dans la liste.

Exemple avec un pointeur vers la queue:

class LinkedList {
    Node head;
    Node tail;

    void addLast(int value) {
        Node newNode = new Node(value);
        if (head == null) {
            head = newNode;
            tail = newNode;
        } else {
            tail.next = newNode;
            tail = newNode;
        }
    }
}