From adaaa6bd68a4af7c2e9a7f4c2ed2036a369d707d Mon Sep 17 00:00:00 2001 From: Alexander Neonxp Kiryukhin Date: Sat, 14 Feb 2026 00:55:12 +0300 Subject: added stack, added smap --- container/stack.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 container/stack.go (limited to 'container/stack.go') diff --git a/container/stack.go b/container/stack.go new file mode 100644 index 0000000..0f5a640 --- /dev/null +++ b/container/stack.go @@ -0,0 +1,28 @@ +// 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 +} -- cgit v1.2.3