Back to questions
Junior — Middle
78
Какие процессы происходят, когда в стек, реализованный через связанный список, добавляется новый элемент?
Answer from AI
sobes.tech AI
При добавлении нового элемента в стек, реализованный через связанный список, происходит следующее:
- Создаётся новый узел (элемент списка), в котором хранится значение, которое нужно добавить.
- Указатель нового узла устанавливается на текущий верхний элемент стека (то есть на голову связанного списка).
- Голова связанного списка обновляется и теперь указывает на новый узел — он становится новым верхним элементом стека.
Таким образом, операция 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
}
}