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
}