package main
import (
"fmt"
"errors"
)
type Stack []int
// 入栈
func (s *Stack) push(a int) {
*s = append(*s, a)
}
// 出栈
func (s *Stack) pop() (int, error) {
if (len(*s) == 0) {
return 0, errors.New("Empty Stack")
}
a := *s
defer func() {
*s = a[:len(a) - 1]
}()
return a[len(a) - 1], nil
}
func main() {
// 数据初始化化
var s Stack = []int{12}
s.push(10)
fmt.Printf("入栈后的 Stack : %v\n", s)
a, err := s.pop()
fmt.Printf("出栈的数据:%v , 目前的 Stack : %v, Error: %v\n", a, s, err)
}
相关文章
- 11-28leetcode_数据结构_链表_445两数相加二(STL库stack栈的使用)
- 11-28STL(标准模板库) 中栈(stack)的使用方法
- 11-28[CareerCup] 3.1 Implement Three Stacks using Array 使用数组来实现三个栈
- 11-28golang / creator js 实现使用 protobuf 进行数据交互
- 11-28python 使用顺序表实现栈和队列
- 11-28栈stack的C实现
- 11-28leetcode_数据结构_链表_445两数相加二(STL库stack栈的使用)
- 11-28使用 Golang 实现 SSH 隧道功能
- 11-28Golang源码学习:使用gdb调试探究Golang函数调用栈结构
- 11-28Golang | Go语言多态的实现与interface使用