Sobes.tech
Junior — Middle

Kokie procesai vyksta, kai į sąsajos sąrašą įgyvendintą krūvą pridedamas naujas elementas?

sobes.tech AI

Atsakymas iš AI

Kai įdedate naują elementą į krūvą, įgyvendintą naudojant susietą sąrašą, vyksta šie veiksmai:

  1. Sukuriamas naujas mazgas (sąrašo elementas), kuriame saugoma įdedama reikšmė.
  2. Naujo mazgo rodyklė nustatoma į dabartinį viršutinį krūvos elementą (t.y., į susieto sąrašo galvą).
  3. Susieto sąrašo galva atnaujinama ir dabar rodo į naują mazgą — jis tampa nauju viršutiniu krūvos elementu.

Taip, push operacija vykdoma pastoviu laiku O(1), nes nereikia eiti per sąrašą.

Pavyzdys Kotlin kalba:

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