Junior — Middle
Koji procesi se dešavaju kada se u stek implementiran putem povezane liste doda novi element?
sobes.tech АИ
Одговор од АИ
При додавању новог елемента у стек, реализован преко повезане листе, следи следеће:
- Креира се нови чвор (елемент листе), који садржи вредност која се додаје.
- Показивач новог чвора се поставља на тренутни врх стека (односно на главу повезане листе).
- Глава повезане листе се ажурира и сада показује на нови чвор — он постаје нови врх стека.
Овим се операција 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
}
}