Sobes.tech
Junior — Middle

Kaip sukurti duomenų struktūrą staką, naudojant susietą sąrašą?

sobes.tech AI

Atsakymas iš AI

Eilė gali būti įgyvendinta remiantis susietu sąrašu, kur kiekvienas elementas (mazgas) turi duomenis ir nuorodą į kitą elementą. Viršutinis eilės elementas yra sąrašo galva. Pagrindinės operacijos:

  • push — pridėti naują mazgą į sąrašo pradžią;
  • pop — pašalinti mazgą iš sąrašo pradžios ir grąžinti jo reikšmę;
  • peek — peržiūrėti galvos reikšmę be pašalinimo.

Pavyzdys Kotlin kalba:

class Node<T>(val data: T, var next: Node<T>? = null)

class Stack<T> {
    private var head: Node<T>? = null

    fun push(value: T) {
        val newNode = Node(value, head)
        head = newNode
    }

    fun pop(): T? {
        val value = head?.data
        head = head?.next
        return value
    }

    fun peek(): T? = head?.data

    fun isEmpty() = head == null
}

Šis požiūris užtikrina steko operacijas O(1) laiko ir leidžia dinamiškai plėstis, nereikalaujant didelio masyvo paskirstymo.