Sobes.tech
Junior — Middle

Koji procesi se dešavaju kada se u stek implementiran putem povezane liste doda novi element?

sobes.tech АИ

Одговор од АИ

При додавању новог елемента у стек, реализован преко повезане листе, следи следеће:

  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
    }
}