// Package container содержит стандартные контейнеры для данных. package container // Stack container. type Stack[T any] []T // Push element to stack. func (s *Stack[T]) Push(e T) { *s = append(*s, e) } // Pop element from stack. func (s *Stack[T]) Pop() T { var e T if len(*s) > 0 { e, *s = (*s)[len(*s)-1], (*s)[:len(*s)-1] } return e } // Top element on stack. func (s *Stack[T]) Top() T { var e T if len(*s) > 0 { e = (*s)[len(*s)-1] } return e }