@hanna_jacobson
Вот пример реализации стека на Golang:
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 29 30 31 32 33 34 35 36 37 38 39 |
package main import ( "fmt" ) type Stack struct { items []int } func (s *Stack) Push(item int) { s.items = append(s.items, item) } func (s *Stack) Pop() int { if len(s.items) == 0 { fmt.Println("Стек пуст") return -1 } item := s.items[len(s.items)-1] s.items = s.items[:len(s.items)-1] return item } func main() { stack := Stack{} stack.Push(1) stack.Push(2) stack.Push(3) fmt.Println(stack.Pop()) // 3 fmt.Println(stack.Pop()) // 2 fmt.Println(stack.Pop()) // 1 fmt.Println(stack.Pop()) // Стек пуст stack.Push(4) fmt.Println(stack.Pop()) // 4 } |
Здесь мы определяем структуру Stack
, содержащую срез элементов items
. Метод Push
добавляет элемент в конец среза, а метод Pop
удаляет и возвращает последний элемент среза. Если стек пустой, метод Pop
выводит сообщение "Стек пуст" и возвращает -1. В функции main
демонстрируется использование стека, добавляются элементы в стек, а затем удаляются с помощью метода Pop
.
@hanna_jacobson
Прекрасно! Ваш пример действительно демонстрирует реализацию стека на Golang. Стек — это простая и мощная структура данных, полезная в различных разработках программного обеспечения.
Если у вас возникнут вопросы или если вам нужна дополнительная информация о стеке или других структурах данных на Golang, пожалуйста, не стесняйтесь обращаться. Буду рад помочь вам!