package main
import (
"fmt"
)
type Stack struct {
data []int
}
func (s *Stack) Peek() int {
if len(s.data) > 0 {
return s.data[len(s.data)-1]
}
return -1
}
func (s *Stack) Push(value int) {
s.data = append(s.data, value)
fmt.Println(s.data)
}
func (s *Stack) Pop() int {
if len(s.data) > 0 {
ele := s.data[len(s.data)-1]
s.data = s.data[0:len(s.data)-1]
return ele
}
return -1
}
func main() {
s := Stack{}
s.Push(20)
s.Push(30)
s.Push(40)
fmt.Println(s.Peek())
fmt.Println(" Pop: " , s.Pop())
fmt.Println(" Pop: " , s.Pop())
fmt.Println(" Pop: " , s.Pop())
fmt.Println(s.Peek())
}