go语言实现栈

```

package main

import "fmt"

/* 栈结构*/

type Stackstruct {

val []interface{}

length uint32

}

/* 构造一个空栈*/

func (S *Stack) InitStack() {

S.val = make([]interface{},0)

S.length =0

}

/* 销毁栈*/

func (S *Stack) DestroyStack() {

S.ClearStack()

}

/* 清空栈*/

func (S *Stack) ClearStack() {

S.InitStack()

}

/* 判断栈是否为空,空的话,返回true,不空返回false */

func (S *Stack) StackEmpty() bool {

if S.length <=0 {

return true

  }else {

return false

  }

}

/* 返回栈的长度*/

func (S *Stack) StackLength() uint32 {

return S.length

}

/* 获取栈顶元素*/

func (S *Stack) GetTop()interface{} {

return S.val[0]

}

/* 插入一个元素到栈中*/

func (S *Stack) Push(einterface{}) {

S.val = append(S.val, e)

S.length +=1

}

/* 出栈*/

func (S *Stack) Pop()interface{} {

if S.length ==0 {

return nil

}

e := S.val[0]

S.length -=1

  S.val = S.val[:S.length]

return e

}

/* 从栈低到栈顶依次对S的每个元素调用visit().一旦visit()失败,则栈操作失败*/

func (S *Stack) StackTraverse(visitfunc(a ...interface{}))  {

for i := uint32(0);i < S.length;i +=1 {

visit(S.val[i])

}

}

func p(a ...interface{}) {

fmt.Print(a[0]," ")

}

```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值