Sobes.tech
Junior — Middle

Ποια διαδικασία συμβαίνει όταν προστίθεται ένα νέο στοιχείο σε μια στοίβα που υλοποιείται μέσω συνδεδεμένης λίστας;

sobes.tech AI

Απάντηση από AI

Κατά την προσθήκη ενός νέου στοιχείου στην στοίβα, η οποία υλοποιείται μέσω συνδεδεμένης λίστας, συμβαίνει το εξής:

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