Sobes.tech
Back to questions
Junior — Middle
78

Какие процессы происходят, когда в стек, реализованный через связанный список, добавляется новый элемент?

Answer from AI

sobes.tech AI

При добавлении нового элемента в стек, реализованный через связанный список, происходит следующее:

  1. Создаётся новый узел (элемент списка), в котором хранится значение, которое нужно добавить.
  2. Указатель нового узла устанавливается на текущий верхний элемент стека (то есть на голову связанного списка).
  3. Голова связанного списка обновляется и теперь указывает на новый узел — он становится новым верхним элементом стека.

Таким образом, операция push выполняется за константное время O(1), так как не требует обхода списка.

Пример на 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
    }
}