zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Go 切片实现栈

Go 实现 切片
2023-09-11 14:14:56 时间

栈:先进后出

package main

import "fmt"

type stack struct {
	data []int
}

// 入栈
func (s *stack) Push(n int) {
	s.data = append(s.data, n)
}

// 出栈
func (s *stack) Pop() (int, bool) {
	if len(s.data) == 0 {
		return 0, false
	}
	n := s.data[len(s.data)-1]
	s.data = s.data[:len(s.data)-1]
	return n, true
}
func main() {
	s := stack{}
	// 入栈
	s.Push(1)
	s.Push(2)
	s.Push(3)

	// 出栈
	for len(s.data) > 0 {
		n, ok := s.Pop()
		if ok {
			fmt.Println(n)
		}
	}
}