剑指offer-09-用两个栈实现队列-golang

题目:用两个栈实现一个队列。

type Queue struct {
	stack1 []int
	stack2 []int
	//cap    int
}

func (q *Queue) push(val int) {
	q.stack1 = append(q.stack1, val)
	//q.cap++
}

func (q *Queue) pop() int {
	if len(q.stack2) < 1 {
		for len(q.stack1) > 0 {
			q.stack2 = append(q.stack2, q.stack1[len(q.stack1)-1])
			q.stack1 = q.stack1[:len(q.stack1)-1]
		}
	}
	val := q.stack2[len(q.stack2)-1]
	q.stack2 = q.stack2[:len(q.stack2)-1]
	//q.cap--
	return val
}

func (q *Queue) isEmpty() bool {
	if len(q.stack1) == 0 && len(q.stack2) == 0 {
		return true
	} else {
		return false
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值