package main
import (
"errors"
"fmt"
)
type Stack struct {
MaxTop int /** 栈顶**/
Top int /** 指针 **/
arr [5]int /** 模拟数组 **/
}
func main() {
stack := Stack{
MaxTop:5,
Top:-1,
}
stack.Push(100)
stack.Push(200)
stack.Pop()
stack.List()
}
func (this *Stack) Push(val int) (err error) {
if (this.Top == this.MaxTop-1) {
return errors.New("满了")
}
this.Top++
this.arr[this.Top] = val
return
}
func (this *Stack) List() (err error) {
if(this.Top == -1){
return errors.New("空栈")
}
for i:=this.Top;i>=0 ;i-- {
fmt.Printf("arr[%d]=> val=%d\n",i,this.arr[i])
}
return
}
func (this *Stack) Pop() (val int, err error) {
if(this.Top == -1){
return 0, errors.New("empty")
}
val = this.arr[this.Top]
this.Top--
return val ,nil
}
golang模拟栈
最新推荐文章于 2022-11-11 11:51:50 发布