美文网首页
Golang实现整型栈

Golang实现整型栈

作者: FredricZhu | 来源:发表于2020-03-08 12:12 被阅读0次
package main

import (
    "fmt"
    "errors"
)

type Stack struct {
    Size int 
    Top  int 
    arr  [5]int
}


const INT_MAX = int(^uint(0) >> 1)


func (self *Stack) Push(ele int) (err error) {
    if self.Top == self.Size - 1 {
        err = errors.New("Stack full error!!")
        return
    } 
    
    self.Top++
    self.arr[self.Top] = ele
    return
}


func (self *Stack) Pop() (val int, err error) {
    val = -INT_MAX
    if self.Top == -1 {
        err = errors.New("Stack empty error!!")
        return
    }
    
    val = self.arr[self.Top]
    self.Top--
    return
}


func (self *Stack) List() {
    if self.Top == -1 {
        fmt.Println("Stack empty!!")
        return 
    }
    
    curPos := self.Top
    for ;curPos!=-1; {
        fmt.Println(self.arr[curPos])
        curPos--
    }
}


func main() {
    stack := &Stack{
        Size: 5,
        Top: -1,
    }
    
    stack.Push(1)
    stack.Push(2)
    stack.Push(3)
    stack.Push(4)
    stack.Push(5)
    fmt.Println("Current stack")
    stack.List()
    fmt.Println()
    val, err := stack.Pop()
    val, err = stack.Pop()
    val, err = stack.Pop()
    val, err = stack.Pop()
    
    if err!=nil {
        panic(err)
    }
    fmt.Printf("Current Pop: %d\n", val)
}

程序输出如下,


image.png

相关文章

  • Golang实现整型栈

    程序输出如下,

  • 数据结构——Golang实现堆栈

    转载请注明出处数据结构——Golang实现堆栈 1. 栈(stack) 栈(stack)在计算机科学中是限定仅在表...

  • golang 队列和栈的实现

    在 python 中实现队列或者栈非常简单,用list就可以用来做一个简单的栈和队列,如下 那么,在 golang...

  • GO语言实现 一 栈和队列

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

  • go语言 GC混合写屏障

    golang混合写屏障实现 写屏障只应用在堆上应用,栈上部启用。 GC开始将栈上的对象全部扫描并标记为黑色。 GC...

  • 栈切换Format

    golang实现非协作式抢占调度基于此在线程由于时钟中断从睡眠状态中醒来时,内核栈切换到用户栈执行中断处理函数,可...

  • Golang 反射实现依赖注入

    Golang 反射实现依赖注入 Coding/Golang #Golang #Golang/reflect 依赖注...

  • 使用Golang实现栈的链式存储

    栈就像一个水杯后进先出,栈的链式存储中后进去元素的next总是指向先进去的元素, 栈顶元素总是和最后一个进去的元素...

  • 数据结构——栈和队列

    用数组实现栈和队列 用栈实现队列 用队列实现栈 栈和队列的经典算法题最小间距栈宠物收养所 数组实现栈和队列 用数组...

  • 插入排序

    Java代码实现 GoLang代码实现

网友评论

      本文标题:Golang实现整型栈

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