美文网首页
43.Go语言·数据结构·栈

43.Go语言·数据结构·栈

作者: 一枼落知天下 | 来源:发表于2019-06-20 20:46 被阅读0次

main.go

// Go语言·数据结构·栈
package main

import (
    "fmt"
)

var content string = `
————————————————Go语言·数据结构·栈————————————————————
一、栈 stack (堆栈)
    先入后出
    FILO -First In Last Out
    栈顶:Top  变化的 
    栈底:Bottom 固定不变
    空栈:
二、栈的应用场景
    1.子程序的调用:在跳往子程序前,会先将下个指令的地址存到栈(堆栈)中,直到
    子程序执行完后在将地址取出,以回到原来的程序中。
    2.处理递归调用:和子程序的调用类似。只是除了存储下一个指令的地址外,也将参
    数、区域变量等数据存入栈(堆栈)中。
    3.表达式的转换与求值
    4.二叉树的遍历
    5.图形的深度优先(depth-first)搜索法
`

// 使用数组来模拟一个栈
type Stack struct {
    MaxTop int //表示栈最大可以存放的
    Top int    //栈顶 ,
    arr [5]int  //数组来模拟栈
}

// 入栈
func (this *Stack) Push(val int) (err error){
    
    if this.Top == this.MaxTop -1 {
        fmt.Println("栈满咯~~~")
    }

    this.Top++

    this.arr[this.Top] = val

    return 
}

// 出栈

func (this *Stack) Pop()(val int,err error) {
    if this.Top == -1 {
        fmt.Println("栈空的~~")
        return
    }

    val = this.arr[this.Top]

    this.Top--
}


func (this *Stack) Show() {
    fmt.Println("栈的内容如下:")
    if this.Top == -1 {
        fmt.Println("栈空的~~")
        return
    }

    // 从栈顶开始打
    for i := this.Top; i>=0; i-- {
        fmt.Printf("this.arr[%d] = %v \n",i,this.arr[i])
    }
    fmt.Println()
}


func main() {
    stack := &Stack{
        MaxTop : 5,
        Top:-1, //栈顶为-1,表示为空
    }
    for i := 0; i < 5; i++ {
        stack.Push(i)
    }
    stack.Show()
}

相关文章

  • 43.Go语言·数据结构·栈

    main.go

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

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

  • 堆和栈

    在数据结构中堆和栈都是一种数据项按序排列的数据结构,但我们今天所说的重点并不是数据结构中的堆和栈,而是C语言内存分...

  • GO语言实现 一 栈和队列

    线性表中,栈和队列是非常重要的两种数据结构,本文将就这两种数据结构进行 golang语言实现 一.栈的实现 我们需...

  • 栈和队列

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

  • 004 go语言实现栈

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

  • java高级知识点

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

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

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

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

  • 2019-07-11—栈

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

网友评论

      本文标题:43.Go语言·数据结构·栈

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