Sobes.tech
Junior — Middle

Was sind die Hauptvorteile und -nachteile der Datenstruktur Stack?

sobes.tech KI

Antwort von AI

Der Stack ist eine Datenstruktur mit dem Prinzip LIFO (Last In, First Out), bei der das zuletzt hinzugefügte Element zuerst entfernt wird.

Vorteile:

  • Einfache Implementierung und Nutzung.
  • Schneller Zugriff auf das oberste Element (Push-, Pop- und Peek-Operationen erfolgen in O(1)).
  • Gut geeignet für Aufgaben, die eine umgekehrte Verarbeitung erfordern, z.B. Baumdurchlauf, Rückgängigmachen von Aktionen, Parsing.

Nachteile:

  • Eingeschränkter Zugriff: Es kann nur mit dem obersten Element gearbeitet werden, kein beliebiger Zugriff.
  • Die Größe des Stacks kann begrenzt sein (z.B. der Aufruf-Stack in einem Programm), was zu Überläufen führen kann.

Beispiel in Go:

package main
import "fmt"

type Stack []int

func (s *Stack) Push(v int) {
    *s = append(*s, v)
}

func (s *Stack) Pop() (int, bool) {
    if len(*s) == 0 {
        return 0, false
    }
    index := len(*s) - 1
    elem := (*s)[index]
    *s = (*s)[:index]
    return elem, true
}

func main() {
    var s Stack
    s.Push(10)
    s.Push(20)
    fmt.Println(s.Pop()) // 20, true
    fmt.Println(s.Pop()) // 10, true
}