Junior — Middle
What are the main advantages and disadvantages of the Stack data structure?
sobes.tech AI
Answer from AI
Stack — is a data structure with the LIFO (Last In, First Out) principle, where the last added element is retrieved first.
Advantages:
- Simple to implement and use.
- Fast access to the top element (push, pop, peek operations are performed in O(1)).
- Well-suited for tasks related to reverse order processing, such as tree traversal, undo actions, parsing.
Disadvantages:
- Limited access: only the top element can be worked with, arbitrary access is not possible.
- The size of the stack may be limited (for example, call stack in a program), which can lead to overflow.
Example 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
}