Junior — Middle
Kuidas ehitada andmestruktuur virn, kasutades seotud nimekirja?
sobes.tech AI
Vastus AI-lt
Kaste võib olla rakstīta, balstoties uz saistītu sarakstu, kur katrs elements (mezgls) satur datus un atsauci uz nākamo elementu. Augšējais kastes 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.