脚本专栏 
首页 > 脚本专栏 > 浏览文章

go语言实现顺序存储的栈

(编辑:jimmy 日期: 2024/12/26 浏览:3 次 )

本文实例讲述了go语言实现顺序存储的栈。分享给大家供大家参考。具体如下:

1. sequence.go代码如下:
复制代码 代码如下:////////
// 顺序存储的栈
////////
package sequence
const MAXSIZE = 20
type Stack struct {
    Data [MAXSIZE]int //存储栈元素
    Top  int          //指向栈顶,总是指向顶部元素,空时为-1
}
//压栈
//d:栈元素
func (s *Stack) Push(d int) bool {
    if s.Top+1 > MAXSIZE {
        return false
    }
    s.Data[s.Top+1] = d
    s.Top++
    return true
}
//弹栈
func (s *Stack) Pop() int {
    if s.Top == -1 {
        return 0
    }
    s.Data[s.Top] = 0
    d := s.Data[s.Top]
    s.Top--
    return d
}
//取栈的容量
func (s *Stack) GetVol() int {
    return len(s.Data)
}
//取栈的长度
func (s *Stack) GetLength() int {
    c := s.Top + 1
    return c
}
2. main.go代码如下:
复制代码 代码如下:package main
import (
    "fmt"
    "stack/sequence"
)
func main() {
    //初始化一个栈
    var s sequence.Stack
    s.Top = -1
 
    //压入10个元素
    for i := 1; i <= 10; i++ {
        s.Push(i)
    }
    fmt.Println(s)
    fmt.Println(s.GetVol())    //容量
    fmt.Println(s.GetLength()) //长度
 
    //弹出一个元素
    s.Pop()
    s.Pop()
    fmt.Println(s)
    fmt.Println(s.GetVol())    //容量
    fmt.Println(s.GetLength()) //长度
}

希望本文所述对大家的Go语言程序设计有所帮助。

上一篇:Go语言单链表实现方法
下一篇:go语言执行windows下命令行的方法
一句话新闻
高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。
友情链接:杰晶网络 DDR爱好者之家 南强小屋 黑松山资源网 白云城资源网 网站地图 SiteMap