go语言实现顺序存储的栈
本文实例讲述了go语言实现顺序存储的栈。分享给大家供大家参考。具体如下:
1.sequence.go代码如下:
////////
//顺序存储的栈
////////
packagesequence
constMAXSIZE=20
typeStackstruct{
Data[MAXSIZE]int//存储栈元素
Top int //指向栈顶,总是指向顶部元素,空时为-1
}
//压栈
//d:栈元素
func(s*Stack)Push(dint)bool{
ifs.Top+1>MAXSIZE{
returnfalse
}
s.Data[s.Top+1]=d
s.Top++
returntrue
}
//弹栈
func(s*Stack)Pop()int{
ifs.Top==-1{
return0
}
s.Data[s.Top]=0
d:=s.Data[s.Top]
s.Top--
returnd
}
//取栈的容量
func(s*Stack)GetVol()int{
returnlen(s.Data)
}
//取栈的长度
func(s*Stack)GetLength()int{
c:=s.Top+1
returnc
}2.main.go代码如下:
packagemain
import(
"fmt"
"stack/sequence"
)
funcmain(){
//初始化一个栈
varssequence.Stack
s.Top=-1
//压入10个元素
fori:=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语言程序设计有所帮助。