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语言程序设计有所帮助。