golang数据结构之栈
发布时间:2020-12-16 09:18:04 所属栏目:大数据 来源:网络整理
导读:stack.go package stackimport ( " errors " fmt " )type Stack struct { MaxTop int // 栈最大可以存放的数量 Top 栈顶 arr [ 5 ] int 模拟栈 }func (s *Stack) Push(val int ) (err error) { 先判断栈是否满了 if s.Top == s.MaxTop- 1 { fmt.Println( 栈
stack.go package stack import ( "errors" fmt" ) type Stack struct { MaxTop int //栈最大可以存放的数量 Top 栈顶 arr [5]int 模拟栈 } func (s *Stack) Push(val int) (err error) { 先判断栈是否满了 if s.Top == s.MaxTop-1 { fmt.Println(栈满了) return errors.New() } s.Top++ s.arr[s.Top] = val return } func (s *Stack) Pop() (val ,err error) { if s.Top == -栈已空return -1,errors.New() } val = s.arr[s.Top] s.arr[s.Top] = 0 s.Top-- val,nil } func (s *Stack) Show() { 栈为空 } tmp := s for i := tmp.Top; i >= 0; i-- { fmt.Printf(arr[%d]=%vn } main.gp package main import ( go_code/data_structure/stack ) func main() { s := &stack.Stack{ MaxTop: 5 当栈顶为-1时,表示栈顶为空 } s.Push() s.Push(234) for i := 0; i < 3; i++ { val,err := s.Pop() if err != nil { fmt.Println(出栈错误err= } fmt.Println(出栈的值是:6) s.Show() 运行结果: ? 首先是1,2,3,4,5依次进栈,然后5,3出栈,6再进栈。? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |