golang数据结构之栈

前端之家收集整理的这篇文章主要介绍了golang数据结构之栈前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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]=%v\n
}

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再进栈。 

猜你在找的Go相关文章