加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读