Sobes.tech
Junior — Middle

Quels processus se produisent lorsqu'un nouvel élément est ajouté à une pile implémentée via une liste chaînée?

sobes.tech IA

Réponse de l'IA

Lors de l'ajout d'un nouvel élément à la pile, implémentée via une liste chaînée, le processus est le suivant :

  1. Un nouveau nœud (élément de la liste) est créé, contenant la valeur à ajouter.
  2. Le pointeur du nouveau nœud est défini sur l'élément supérieur actuel de la pile (c'est-à-dire la tête de la liste chaînée).
  3. La tête de la liste chaînée est mise à jour pour pointer vers le nouveau nœud, qui devient le nouvel élément supérieur de la pile.

Ainsi, l'opération push s'effectue en temps constant O(1), car elle ne nécessite pas de parcourir la liste.

Exemple en Kotlin :

class Node<T>(val value: T, var next: Node<T>? = null)

class Stack<T> {
    private var head: Node<T>? = null

    fun push(value: T) {
        val newNode = Node(value)
        newNode.next = head
        head = newNode
    }

    fun pop(): T? {
        val value = head?.value
        head = head?.next
        return value
    }
}