Sobes.tech
Junior — Middle

Kā uzbūvēt datu struktūru steku, izmantojot saistītu sarakstu?

sobes.tech AI

Atbilde no AI

Kārbai var būt realizēta, balstoties uz saistītu sarakstu, kur katrs elements (mezgls) satur datus un atsauci uz nākamo elementu. Augšējais kārbas elements ir saraksta galva. Galvenās operācijas:

  • push — pievienot jaunu mezglu saraksta sākumā;
  • pop — noņemt mezglu no saraksta sākuma un atgriezt tā vērtību;
  • peek — apskatīt galvas vērtību bez noņemšanas.

Kotlin piemērs:

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
}

Šī pieeja nodrošina steka operācijas O(1) laikā un ļauj dinamiski paplašināties, bez nepieciešamības piešķirt lielu masīvu.