go语言实现顺序存储的栈
发布时间:2020-12-16 19:33:48 所属栏目:大数据 来源:网络整理
导读:本篇章节讲解go语言实现顺序存储的栈。供大家参考研究。具体如下: 1. sequence.go代码如下: 复制代码 代码如下: //////// // 顺序存储的栈 //////// package sequence const MAXSIZE = 20 type Stack struct { Data [MAXSIZE]int //存储栈元素 Top
本篇章节讲解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语言程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |