blob: 0f5a640ce502ddf0b967f114d5c79e623dfd8f3c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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
}
|