golang顺序栈实现

package main

import (
   "fmt"
)

type arraystack struct {
   items []string//切片
   count int  //栈中元素个数
   n int  //栈的大小
}

//初始化
func (this *arraystack) arraystack(n int){
   this.n=n
   this.count=0
}

//入栈
func (this *arraystack) push(item string){
   if this.count==this.n {
      fmt.Println("栈空间已满")
      return
   }
   this.items=append(this.items,item)
   this.count++

}

//出栈
func(this *arraystack) pop(){
   if 0==this.count{
      fmt.Println("栈已空")
      return
   }
   this.items=this.items[0:len(this.items)-1]
   this.count--

}

//打印输出
func (this arraystack)printstack(){
   for i:=len(this.items)-1;i>=0;i--{
      fmt.Printf("%s-",this.items[i])
   }
}
func main(){
   stack:=new(arraystack)
   stack.arraystack(5)
   stack.push("1")
   stack.push("2")
   stack.push("3")
   stack.push("4")
   stack.push("5")
   stack.printstack()
   fmt.Println()
   stack.pop()
   stack.printstack()

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值