美文网首页
Go数据结构——栈

Go数据结构——栈

作者: ProgrammingGuy | 来源:发表于2020-02-09 15:33 被阅读0次
package main

import (
    "fmt"
)

type stack struct {
    filled int
    data   [10]int
}

func (s *stack) push(value int) {
    if s.filled == 10 {
        panic("stack is full")
    }
    s.data[s.filled] = value
    s.filled++
}

func (s *stack) empty() bool {
    return s.filled == 0
}

func (s *stack) pop() int {
    if s.empty() {
        panic("stack is empty")
    }
    s.filled--
    return s.data[s.filled]
}

func (s *stack) print() {
    for _, v := range s.data {
        fmt.Println(v)
    }
}

func main() {
    s := stack{}
    for i := 0; i < 10; i++ {
        s.push(i)
    }
    s.print()

    fmt.Println("---------------------")

    for i := 0; i < 5; i++ {
        fmt.Println(s.pop())
    }

    fmt.Println("---------------------")

    for i := 0; i < 5; i++ {
        fmt.Println(s.pop())
    }

    fmt.Println("---------------------")

    for i := 0; i < 1; i++ {
        fmt.Println(s.empty())
    }
}

相关文章

  • Go语言数据结构和算法-使用Slice实现栈

    Go语言数据结构和算法-使用Slice实现栈 栈是Last-In-First-Out (LIFO)(后进先出)的数...

  • Go数据结构——栈

  • 栈和队列

    1、栈 栈是一种先进先出的数据结构。栈顶进栈,栈顶出栈。 数据结构 栈的初始化 进栈 出栈 栈的最小值 2、队列 ...

  • 004 go语言实现栈

    1 数据结构 数据结构: 要实现的功能:0 栈的初始化1 获取栈长度2 入栈3 出栈4 清空栈内容5 判断栈是否为...

  • java高级知识点

    1.数据结构 程序=数据结构+算法 栈:后进先出,线性结构 入栈:push 出栈:pop假如已知入栈顺序是ab...

  • 栈和堆以及栈区和堆区的区别

    栈和堆以及栈区和堆区的区别 数据结构中的栈和堆 栈:具有先进后出性质的数据结构 堆:一种经过排序的树形数据结构,节...

  • 优秀网站

    一.语言栈 GO go 博客 Go中国 zupzup : web Ewan : 微服务 go开源项目 Beego:...

  • 数据结构与算法 第二节:栈 栈: 一种先进后出的数据结构。可以想象成手枪的弹夹。 栈的特点: 栈的行为: 栈的代...

  • 2019-07-11—栈

    栈:Java数据结构和算法(四)——栈 string和char一般这么转化: 21、定义栈的数据结构,请在该类型中...

  • 什么是堆栈?

    堆与栈是两种数据结构,并不是一种数据结构,堆是堆,栈是栈。 1、栈:是一种只能在一端进行插入和删除的数据结构。 允...

网友评论

      本文标题:Go数据结构——栈

      本文链接:https://www.haomeiwen.com/subject/irxnxhtx.html