Sobes.tech
Junior — Middle

როგორ შევქმნათ მონაცემთა სტრუქტურა სტეკი დაკავშირებული სია გამოყენებით?

sobes.tech AI

პასუხი AI-სგან

სტეკი შეიძლება განხორციელდეს დაკავშირებული სიის საფუძველზე, სადაც თითოეული ელემენტი (ნოდი) შეიცავს მონაცემებს და მითითებას შემდეგ ელემენტზე. სტეკის ზედა ელემენტი არის სიის თავი. ძირითადი ოპერაციები:

  • push — ახალი ნოდის დამატება სიას დასაწყისში;
  • pop — ნოდის ამოღება სიას დასაწყისიდან და მისი მნიშვნელობის დაბრუნება;
  • peek — თვალყურის დევნება თავზე, ამოღების გარეშე.

კოტლინში მაგალითი:

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
}

ამ მიდგომა უზრუნველყოფს სტეკის ოპერაციებს O(1) დროში და საშუალებას იძლევა დინამიკურად გაფართოვდეს, დიდი მასივის განაწილების საჭიროების გარეშე.